Note that there are some explanatory texts on larger screens.

plurals
  1. POhow can i Use navigation drawer and Tabhost together without using any external library
    text
    copied!<p>I want to use navigation drawer and Tabhost together without using any external library is that possible? </p> <p>I have tried using external library of Sherlock Fragment however, i am getting issues with other things.</p> <p>FragmentTab1.java</p> <pre><code>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&lt;HashMap&lt;String, String&gt;&gt; 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 &gt; 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&lt;HashMap&lt;String, String&gt;&gt;(); 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 &lt; REQUIRED_SIZE &amp;&amp; height_tmp &lt; 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&lt;Void, Void, String&gt; { @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&lt;Void, Void, String&gt; { @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 &lt; 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&lt;String, String&gt; map = new HashMap&lt;String, String&gt;(); 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); } } } </code></pre> <p>LogCat output:</p> <pre><code> 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) </code></pre>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload