I want to use navigation drawer and Tabhost together without using any external library is that possible?
I have tried using external library of Sherlock Fragment however, i am getting issues with other things.
FragmentTab1.java
public class FragmentTab1 extends SherlockFragment {
Button postAd, browse;
EditText discription;
EditText price;
String discriptionText;
String priceText;
String adTypetext;
RadioGroup adType;
RadioButton buy;
RadioButton sell;
Bitmap bitmap;
ProgressDialog dialog;
String encodedImage;
String userid;
TextView msgLength;
JSONArray AdsArray = null;
String TAG_ID = "id";
String TAG_IMAGE = "image";
String TAG_TYPE = "adType";
String TAG_DISCRIPTION = "description";
String TAG_PRICE = "price";
ListView lv;
ArrayList<HashMap<String, String>> adList;
private static final int PICK_IMAGE = 1;
@SuppressLint("NewApi")
@TargetApi(Build.VERSION_CODES.GINGERBREAD)
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
      Bundle savedInstanceState) {
  View rootView = inflater.inflate(R.layout.fragmenttab1, container, false);
  if (android.os.Build.VERSION.SDK_INT > 9) {
        StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder()
                .permitAll().build();
        StrictMode.setThreadPolicy(policy);
    }
    postAd = (Button) getView().findViewById(R.id.bpostAd);
    discription = (EditText)getView().findViewById(R.id.etDiscription);
    price = (EditText)getView().findViewById(R.id.etPrice);
    final RadioGroup adType = (RadioGroup)getView().findViewById(R.id.radioGroup);
    RadioButton buy = (RadioButton)getView().findViewById(R.id.rbBuy);
    RadioButton sell = (RadioButton)getView().findViewById(R.id.rbSell);
    browse = (Button)getView().findViewById(R.id.bBrowse);
    msgLength = (TextView)getView().findViewById(R.id.tvLength);
    lv = (ListView)getView().findViewById(R.id.listView1);
    SharedPreferences mPrefs = getActivity().getSharedPreferences("IDvalue", 0);
    userid = mPrefs.getString("userIdKey", null);
    adList = new ArrayList<HashMap<String, String>>();
    new LoadMyAds().execute();
    TextWatcher txwatcher = new TextWatcher() {
        @Override
        public void onTextChanged(CharSequence s, int start, int before,
                int count) {
            // TODO Auto-generated method stub
            int length = s.length();
            int remaining = 140 - length;
            msgLength.setText(String.valueOf(remaining));
        }
        @Override
        public void beforeTextChanged(CharSequence s, int start, int count,
                int after) {
            // TODO Auto-generated method stub
        }
        @Override
        public void afterTextChanged(Editable s) {
            // TODO Auto-generated method stub
        }
    };
    discription.addTextChangedListener(txwatcher);
    postAd.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            discriptionText = discription.getText().toString();
            priceText = price.getText().toString();
            int selectedRbId = adType.getCheckedRadioButtonId();
            if (selectedRbId == R.id.rbBuy) {
                adTypetext = "Buying";
            }
            if (selectedRbId == R.id.rbSell) {
                adTypetext = "Selling";
            }
            if (bitmap == null) {
                Toast.makeText(getActivity().getApplicationContext(),
                        "Please select image", Toast.LENGTH_SHORT).show();
            } else {
                new ImageUploadTask().execute();
                UserFunctions userFunction = new UserFunctions();
                JSONObject json = userFunction.postAd(encodedImage,
                        discriptionText, adTypetext, priceText, userid);
                try {
                    if (json.getString("status") != null) {
                        String res = json.getString("status");
                        if (Integer.parseInt(res) == 1) {
                            Toast.makeText(getActivity().getApplicationContext(),
                                    "Ad has been posted", Toast.LENGTH_LONG)
                                    .show();
                        } else {
                            Toast.makeText(getActivity().getApplicationContext(),
                                    "posting error", Toast.LENGTH_LONG)
                                    .show();
                        }
                    }
                } catch (Exception e) {
                    // TODO: handle exception
                    e.printStackTrace();
                }
            }
        }
    });
    browse.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            try {
                Intent intent = new Intent();
                intent.setType("image/*");
                intent.setAction(Intent.ACTION_GET_CONTENT);
                startActivityForResult(
                        Intent.createChooser(intent, "Select Picture"),
                        PICK_IMAGE);
            } catch (Exception e) {
                Toast.makeText(getActivity().getApplicationContext(), "error",
                        Toast.LENGTH_LONG).show();
                Log.e(e.getClass().getName(), e.getMessage(), e);
            }
        }
    });
  return rootView;
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    // TODO Auto-generated method stub
    switch (requestCode) {
    case PICK_IMAGE:
        if (resultCode == Activity.RESULT_OK) {
            Uri selectedImageUri = data.getData();
            String filePath = null;
            try {
                // OI FILE Manager
                String filemanagerstring = selectedImageUri.getPath();
                // MEDIA GALLERY
                String selectedImagePath = getPath(selectedImageUri);
                if (selectedImagePath != null) {
                    filePath = selectedImagePath;
                } else if (filemanagerstring != null) {
                    filePath = filemanagerstring;
                } else {
                    Toast.makeText(getActivity().getApplicationContext(), "Unknown path",
                            Toast.LENGTH_LONG).show();
                    Log.e("Bitmap", "Unknown path");
                }
                if (filePath != null) {
                    decodeFile(filePath);
                } else {
                    bitmap = null;
                }
            } catch (Exception e) {
                Toast.makeText(getActivity().getApplicationContext(), "Internal error",
                        Toast.LENGTH_LONG).show();
                Log.e(e.getClass().getName(), e.getMessage(), e);
            }
        }
        break;
    default:
    }
}
public String getPath(Uri uri) {
    String[] projection = { MediaStore.Images.Media.DATA };
    @SuppressWarnings("deprecation")
    Cursor cursor = getActivity().managedQuery(uri, projection, null, null, null);
    if (cursor != null) {
        // HERE YOU WILL GET A NULLPOINTER IF CURSOR IS NULL
        // THIS CAN BE, IF YOU USED OI FILE MANAGER FOR PICKING THE MEDIA
        int column_index = cursor
                .getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
        cursor.moveToFirst();
        return cursor.getString(column_index);
    } else
        return null;
}
public void decodeFile(String filePath) {
    // Decode image size
    BitmapFactory.Options o = new BitmapFactory.Options();
    o.inJustDecodeBounds = true;
    BitmapFactory.decodeFile(filePath, o);
    // The new size we want to scale to
    final int REQUIRED_SIZE = 1024;
    // Find the correct scale value. It should be the power of 2.
    int width_tmp = o.outWidth, height_tmp = o.outHeight;
    int scale = 1;
    while (true) {
        if (width_tmp < REQUIRED_SIZE && height_tmp < REQUIRED_SIZE)
            break;
        width_tmp /= 2;
        height_tmp /= 2;
        scale *= 2;
    }
    // Decode with inSampleSize
    BitmapFactory.Options o2 = new BitmapFactory.Options();
    o2.inSampleSize = scale;
    bitmap = BitmapFactory.decodeFile(filePath, o2);
    Log.e("Decodefile", "bitmap set");
    // imgView.setImageBitmap(bitmap);
}
class ImageUploadTask extends AsyncTask<Void, Void, String> {
    @Override
    protected String doInBackground(Void... params) {
        // TODO Auto-generated method stub
        ByteArrayOutputStream bos = new ByteArrayOutputStream();
        bitmap.compress(CompressFormat.JPEG, 100, bos);
        byte[] data = bos.toByteArray();
        // encodedImage = new String(data);
        encodedImage = Base64.encodeToString(data, Base64.DEFAULT);
        return encodedImage;
    }
}
class LoadMyAds extends AsyncTask<Void, Void, String> {
    @Override
    protected String doInBackground(Void... params) {
        // TODO Auto-generated method stub
        UserFunctions userFunction = new UserFunctions();
        String type = "MyAds";
        JSONObject json = userFunction.myAds(userid, type);
        try {
            if (json.getString("status") != null) {
                String res = json.getString("status");
                if (Integer.parseInt(res) == 1) {
                    AdsArray = json.getJSONArray("adsArray");
                    for (int i = 0; i < AdsArray.length(); i++) {
                        JSONObject c = AdsArray.getJSONObject(i);
                        String id = c.getString(TAG_ID);
                        String adType = c.getString(TAG_TYPE);
                        String description = c.getString(TAG_DISCRIPTION);
                        String price = c.getString(TAG_PRICE);
                        String image = c.getString(TAG_IMAGE);
                        HashMap<String, String> map = new HashMap<String, String>();
                        map.put(TAG_ID, id);
                        map.put(TAG_IMAGE, image);
                        map.put(TAG_TYPE, adType);
                        map.put(TAG_DISCRIPTION, description);
                        map.put(TAG_PRICE, price);
                        adList.add(map);
                    }
                } else {
                    Toast.makeText(getActivity().getApplicationContext(),
                            "parsing error", Toast.LENGTH_LONG).show();
                }
            }
        } catch (Exception e) {
            // TODO: handle exception
            e.printStackTrace();
        }
        return null;
    }
    @Override
    protected void onPostExecute(String result) {
        // TODO Auto-generated method stub
        //image parameter need to be added
        ListAdapter adapter = new SimpleAdapter(getActivity(), adList, R.layout.ad_list_item , new String[] { TAG_DISCRIPTION, TAG_PRICE} , new int[] { R.id.title, R.id.price});
        lv.setAdapter(adapter);
    }
}
}
LogCat output:
    12-29 23:42:09.819: E/AndroidRuntime(1061): FATAL EXCEPTION: main
12-29 23:42:09.819: E/AndroidRuntime(1061): java.lang.NullPointerException
12-29 23:42:09.819: E/AndroidRuntime(1061):     at com.backslash.myadds.FragmentTab1.onCreateView(FragmentTab1.java:86)
12-29 23:42:09.819: E/AndroidRuntime(1061):     at android.support.v4.app.Fragment.performCreateView(Fragment.java:1460)
12-29 23:42:09.819: E/AndroidRuntime(1061):     at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:911)
12-29 23:42:09.819: E/AndroidRuntime(1061):     at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1088)
12-29 23:42:09.819: E/AndroidRuntime(1061):     at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:682)
12-29 23:42:09.819: E/AndroidRuntime(1061):     at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1444)
12-29 23:42:09.819: E/AndroidRuntime(1061):     at android.support.v4.app.FragmentManagerImpl.executePendingTransactions(FragmentManager.java:461)
12-29 23:42:09.819: E/AndroidRuntime(1061):     at android.support.v4.app.FragmentTabHost.onAttachedToWindow(FragmentTabHost.java:279)
12-29 23:42:09.819: E/AndroidRuntime(1061):     at android.view.View.dispatchAttachedToWindow(View.java:12125)
12-29 23:42:09.819: E/AndroidRuntime(1061):     at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2453)
12-29 23:42:09.819: E/AndroidRuntime(1061):     at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2460)
12-29 23:42:09.819: E/AndroidRuntime(1061):     at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2460)
12-29 23:42:09.819: E/AndroidRuntime(1061):     at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2460)
12-29 23:42:09.819: E/AndroidRuntime(1061):     at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2460)
12-29 23:42:09.819: E/AndroidRuntime(1061):     at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2460)
12-29 23:42:09.819: E/AndroidRuntime(1061):     at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2460)
12-29 23:42:09.819: E/AndroidRuntime(1061):     at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1207)
12-29 23:42:09.819: E/AndroidRuntime(1061):     at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1004)
12-29 23:42:09.819: E/AndroidRuntime(1061):     at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5481)
12-29 23:42:09.819: E/AndroidRuntime(1061):     at android.view.Choreographer$CallbackRecord.run(Choreographer.java:749)
12-29 23:42:09.819: E/AndroidRuntime(1061):     at android.view.Choreographer.doCallbacks(Choreographer.java:562)
12-29 23:42:09.819: E/AndroidRuntime(1061):     at android.view.Choreographer.doFrame(Choreographer.java:532)
12-29 23:42:09.819: E/AndroidRuntime(1061):     at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:735)
12-29 23:42:09.819: E/AndroidRuntime(1061):     at android.os.Handler.handleCallback(Handler.java:730)
12-29 23:42:09.819: E/AndroidRuntime(1061):     at android.os.Handler.dispatchMessage(Handler.java:92)
12-29 23:42:09.819: E/AndroidRuntime(1061):     at android.os.Looper.loop(Looper.java:137)
12-29 23:42:09.819: E/AndroidRuntime(1061):     at android.app.ActivityThread.main(ActivityThread.java:5103)
12-29 23:42:09.819: E/AndroidRuntime(1061):     at java.lang.reflect.Method.invokeNative(Native Method)
12-29 23:42:09.819: E/AndroidRuntime(1061):     at java.lang.reflect.Method.invoke(Method.java:525)
12-29 23:42:09.819: E/AndroidRuntime(1061):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
12-29 23:42:09.819: E/AndroidRuntime(1061):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
12-29 23:42:09.819: E/AndroidRuntime(1061):     at dalvik.system.NativeStart.main(Native Method)
 
     
    