title: Custom Array adapter in fragment
body: <p>I am very new in Andriod. i have tried so many times but got stuck on this problem since long time. I have an activity named ProductListActivity and in this activity i have one fragments. now i want to display List and for that i have created my own custom array adapter. its working fine when when i am not using fragments but for fragments giving me NullPointerException. I debug my code. Please help me out guys.Thanks for considering.
  Here i am pasting my code.</p>
  
  <p>Activity class:</p>
  
  <pre><code>public class ProductListActivity extends Activity implements ProductInterface{
  public static String cookie;
  public static String jsonSettingsResponse;
  public static String[] tids;
  public static String jsonPorductsCategoryListResponseString;
  public JSONArray jsonPorductsCategoryListResponseArray;
  public static String vid;
  public static String publicPath;
  public static JSONArray productsList;
  public ArrayList&lt;String&gt; listItems;
  public String[] listProCategory;
  
  @Override
  protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.product_category_and_list);
      Intent intent = getIntent();
      cookie = intent.getStringExtra(BConstant.WEB_SERVICES_COOKIES);
      productsList = new JSONArray();
      FetchProductCategories products = new FetchProductCategories();
      productsList = products.fetchProducts();
      listProCategory = products.onDisplayProductList(productsList).toArray(
              new String[0]);
  
      Bundle bundle = new Bundle();
      bundle.putString(BConstant.WEB_SERVICES_COOKIES, cookie);
      bundle.putString(BConstant.PUBLIC_PATH, publicPath);
      bundle.putStringArray(BConstant.TAXONOMY_TID, tids);
      bundle.putStringArray(BConstant.PRODUCT_CATEGORY_NAMES, listProCategory);
      ProductCategoryFragment productCategoryFragment = new ProductCategoryFragment();
      FragmentManager manager = getFragmentManager();
      productCategoryFragment.setArguments(bundle);
  
  }
  
  private class FetchProductCategories {
      protected JSONArray fetchProducts(String... params) {
          jsonSettingsResponse = WebserviceBUtil
                  .callWebServicesGetVocabularyList(cookie);
          vid = JSONUtil.parseJSONResponse(jsonSettingsResponse,
                  BConstant.TAXONOMY_VID);
          publicPath = JSONUtil.parseJSONResponse(jsonSettingsResponse,
                  BConstant.PUBLIC_PATH);
          jsonPorductsCategoryListResponseString = WebserviceBUtil
                  .callWebServicesGetProductsList(cookie, vid);
          tids = ProductCategoryIds.parseJSONResponseToGetTidsOfProducts(
                  jsonPorductsCategoryListResponseString,
                  BConstant.TAXONOMY_TID);
          try {
              jsonPorductsCategoryListResponseArray = new JSONArray(
                      jsonPorductsCategoryListResponseString);
          } catch (JSONException e) {
              e.printStackTrace();
          }
          return jsonPorductsCategoryListResponseArray;
      }
  
  
      protected ArrayList&lt;String&gt; onDisplayProductList(JSONArray result) {
          listItems = new ArrayList&lt;String&gt;();
          for (int i = 0; i &lt; result.length(); i++) {
              try {
                  listItems
                          .add(result.getJSONObject(i)
                                  .getString(BConstant.NAME_CONSTANT)
                                  .toString());
              } catch (Exception ex) {
                  ex.printStackTrace();
              }
          }
          return listItems;
      }
  }
  
  
      @Override
      public HashMap&lt;Integer, Bitmap&gt; DownloadImages(HashMap&lt;Integer, String&gt; productCategoryImagePath) {
          HashMap&lt;Integer, Bitmap&gt; imgBitmap = new HashMap&lt;Integer, Bitmap&gt;();
          for (int pos = 0; pos &lt; productCategoryImagePath.size(); pos++) {
              Bitmap bval = ImageDownloader
                      .getBitmapFromURL(productCategoryImagePath.get(pos));
          imgBitmap.put(pos, bval);
          }
          return imgBitmap;
  
  }
  }
  </code></pre>
  
  <p>Fragments class:</p>
  
  <pre><code>public class ProductCategoryFragment extends Fragment {
  ProductInterface productInterface;
  private static String[] tids;
  private static HashMap&lt;Integer, String&gt; productCategoryImagePath;
  private static String jsonPorductsDetailsImagePathResponse;
  private static String publicPath;
  private static String cookie;
  public String[] listProCategory;
  public  ListView listOfProductsCategory;
  private static HashMap&lt;Integer, Bitmap&gt; imgBitmapUrls;
  DisplayProductListArrayAdapter adapter;
  
  
  @Override
  public View onCreateView(LayoutInflater inflater, ViewGroup container,
          Bundle savedInstanceState) {
       View fragProcatView = inflater.inflate(R.layout.product_category_list, container,
                  false);
       listOfProductsCategory = (ListView) getActivity().findViewById(R.id.productCategorylistView);
      return fragProcatView;
  
  }
  
  @Override
  public void onActivityCreated(Bundle savedInstanceState) {
      super.onActivityCreated(savedInstanceState);
      publicPath = getArguments().getString(BConstant.PUBLIC_PATH);
      cookie = getArguments().getString(BConstant.WEB_SERVICES_COOKIES);
      tids = getArguments().getStringArray(BConstant.TAXONOMY_TID);
      listProCategory = getArguments().getStringArray(
              BConstant.PRODUCT_CATEGORY_NAMES);
      Bundle b = getActivity().getIntent().getExtras();
      publicPath = b.getString(BConstant.PUBLIC_PATH);
      cookie = b.getString(BConstant.WEB_SERVICES_COOKIES);
      tids =b.getStringArray(BConstant.TAXONOMY_TID);
      listProCategory =b.getStringArray(
              BConstant.PRODUCT_CATEGORY_NAMES);
      productInterface = (ProductInterface) getActivity();
      productCategoryImagePath = new HashMap&lt;Integer, String&gt;();
      for (int i = 0; i &lt; tids.length; i++) {
          jsonPorductsDetailsImagePathResponse = WebserviceBUtil
                  .callWebServicesGetProductsDetails(cookie, tids[i]);
          String filename = ProductCategoryIds
                  .parseJSONResponseToGetVidOfProductsFromVocabulary(
                          jsonPorductsDetailsImagePathResponse,
                          BConstant.FILE_NAME);
          String completeUrl = publicPath + filename;
          productCategoryImagePath.put(i, completeUrl);
      }
      imgBitmapUrls = productInterface
              .DownloadImages(productCategoryImagePath);
       adapter = new DisplayProductListArrayAdapter(
                  getActivity(), listProCategory,
                  imgBitmapUrls);
      listOfProductsCategory.setAdapter(adapter);
  }
  
  
  /**
   * ExtendsArrayAdapterClassToDisplayCustomListView
   */
  public class DisplayProductListArrayAdapter extends ArrayAdapter&lt;String&gt; {
  
      Context context;
      HashMap&lt;Integer, Bitmap&gt; prodctImgs;
      String[] proCategoryNames;
      HashMap&lt;Integer, Bitmap&gt;biturls;
      DisplayProductListArrayAdapter(Context c,
              String[] listCategory, HashMap&lt;Integer, Bitmap&gt; imgUrls) {
          super(c,
                  R.layout.product_category_single_layout,
                  R.id.productCategoryName, listCategory);
          this.context = c;
          this.prodctImgs = imgUrls;
          this.proCategoryNames = listCategory;
          this.biturls = imgUrls;
      }
  
      @Override
      public View getView(int position, View convertView, ViewGroup parent) {
          //LayoutInflater inflater = (LayoutInflater) context
      //          .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
          LayoutInflater inflater=((Activity)context).getLayoutInflater(); 
  View row = inflater.inflate(R.layout.product_category_single_layout,parent,false);
          ImageView productCategoryImage = (ImageView) row
                  .findViewById(R.id.productCategoryImageId);
          Bitmap bitmap = imgBitmapUrls.get(position);
          // productCategoryImage.setFocusable(false);
          TextView productCategoryName = (TextView) row
                  .findViewById(R.id.productCategoryName);
          productCategoryImage.setImageBitmap(bitmap);
          productCategoryName.setText(proCategoryNames[position]);
          return row;
      }
       }
    }
  </code></pre>