-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.

2
  • try MatrixCursor i found a similar question stackoverflow.com/questions/18290864/… Commented Mar 9, 2015 at 6:45
  • @Nooh Thanks.. But how can i convert get the cursor object from ' MatrixCursor ' Commented Mar 9, 2015 at 6:49

1 Answer 1

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);
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.