I am very new to Andrew. I tried so many times, but got stuck in this problem for a long time. I have an activity called ProductListActivity, and in this activity I have one fragment. Now I want to display the List, and for this I created my own array adapter. its work fine when I don't use fragments, but for fragments giving me a NullPointerException. I am debugging my code. Please help me with the guys. Thanks for attention. Here I insert my code.
Action class:
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<String> 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<String> onDisplayProductList(JSONArray result) { listItems = new ArrayList<String>(); for (int i = 0; i < result.length(); i++) { try { listItems .add(result.getJSONObject(i) .getString(BConstant.NAME_CONSTANT) .toString()); } catch (Exception ex) { ex.printStackTrace(); } } return listItems; } } @Override public HashMap<Integer, Bitmap> DownloadImages(HashMap<Integer, String> productCategoryImagePath) { HashMap<Integer, Bitmap> imgBitmap = new HashMap<Integer, Bitmap>(); for (int pos = 0; pos < productCategoryImagePath.size(); pos++) { Bitmap bval = ImageDownloader .getBitmapFromURL(productCategoryImagePath.get(pos)); imgBitmap.put(pos, bval); } return imgBitmap; } }
Fragment Class:
public class ProductCategoryFragment extends Fragment { ProductInterface productInterface; private static String[] tids; private static HashMap<Integer, String> productCategoryImagePath; private static String jsonPorductsDetailsImagePathResponse; private static String publicPath; private static String cookie; public String[] listProCategory; public ListView listOfProductsCategory; private static HashMap<Integer, Bitmap> 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<Integer, String>(); for (int i = 0; i < 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); } public class DisplayProductListArrayAdapter extends ArrayAdapter<String> { Context context; HashMap<Integer, Bitmap> prodctImgs; String[] proCategoryNames; HashMap<Integer, Bitmap>biturls; DisplayProductListArrayAdapter(Context c, String[] listCategory, HashMap<Integer, Bitmap> 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) {
android
rup35h
source share