-1

I have an old implentation that uses entries from a database and uses the cursor object to populate a list view.But in the new implementation i have a multidimensional string array.With 12 columns and variable number of rows

String[][] detailsarray;  

I need to convert this string array to a cursor object so that i can reuse the old code.

Used to open a new fragment with list adaptor

private void callProductListFragment(Cursor cursor) {
    productListFragment = new ProductListFragment(cursor);
    FragmentTransaction ft = getFragmentManager().beginTransaction();
    ft.addToBackStack("list");
    ft.add(R.id.fl_container, productListFragment, "FragList").commit();
}

---ProductListFragment.java

public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
     View view =  inflater.inflate(R.layout.product_list_fragment,container, false);
       product_list = (ListView) view.findViewById(R.id.product_list); 
        ProductAdapter productAdapter = new ProductAdapter(getActivity(), cursor, false);
        product_list.setAdapter(productAdapter);
        product_list.setOnItemClickListener(new OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView<?> parent, View view,
                    int position, long id) {
                Cursor cursor = ((CursorAdapter) parent.getAdapter()).getCursor();
                cursor.moveToPosition(position);
                ProductObject productObject = new ProductObject(String.valueOf(cursor.getInt(cursor.getColumnIndex(ProductsData._ID))),cursor.getString(cursor.getColumnIndex(ProductsData.PRODUCT_ID)),cursor.getString(cursor.getColumnIndex(ProductsData.PRODUCT_TITLE)),cursor.getString(cursor.getColumnIndex(ProductsData.PRODUCT_DEALER_NAME)), cursor.getString(cursor.getColumnIndex(ProductsData.PRODUCT_DEALER_DESC)), cursor.getString(cursor.getColumnIndex(ProductsData.PRODUCT_DEALER_LOCATION)), cursor.getString(cursor.getColumnIndex(ProductsData.PRODUCT_DEALER_ADDRESS)), cursor.getString(cursor.getColumnIndex(ProductsData.PRODUCT_DEALER_TYPE)), cursor.getString(cursor.getColumnIndex(ProductsData.PRODUCT_DEALER_NO)), cursor.getString(cursor.getColumnIndex(ProductsData.PRODUCT_IMAGE)));
                productDeatailsFragment = new ProductDeatailsFragment(productObject);
                FragmentTransaction ft = getFragmentManager().beginTransaction();
                ft.addToBackStack("details");
                ft.add(R.id.fl_container, productDeatailsFragment, "FragList").commit();
            }
        });
        return view;
}

How can i do this..Please advice.

techno
  • 6,100
  • 16
  • 86
  • 192
  • try `MatrixCursor` i found a similar question http://stackoverflow.com/questions/18290864/create-a-cursor-from-hardcoded-array-instead-of-db – Nooh Mar 09 '15 at 06:45
  • @Nooh Thanks.. But how can i convert get the cursor object from ' MatrixCursor ' – techno Mar 09 '15 at 06:49

1 Answers1

1

try MatrixCursor i found a similar question Create a cursor from hardcoded array instead of DB

MatrixCursor is inherited from Cursor

so you can use

String[] columns = new String[] { "_id", "item", "description" };
Cursor cursor= new MatrixCursor(columns);
Community
  • 1
  • 1
Nooh
  • 1,548
  • 13
  • 21