【问题标题】:Converting Multidimentional String array to cursor将多维字符串数组转换为游标
【发布时间】:2015-05-10 06:42:50
【问题描述】:

我有一个旧实现,它使用数据库中的条目并使用游标对象填充列表视图。但在新实现中,我有一个多维字符串数组。有 12 列和可变行数

String[][] detailsarray;  

我需要将此字符串数组转换为光标对象,以便我可以重用旧代码。

用于使用列表适配器打开一个新片段

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;
}

我该怎么做..请指教。

【问题讨论】:

标签: android arrays database cursor


【解决方案1】:

试试 MatrixCursor 我发现了一个类似的问题 Create a cursor from hardcoded array instead of DB

MatrixCursor 继承自 Cursor

所以你可以使用

String[] columns = new String[] { "_id", "item", "description" };
Cursor cursor= new MatrixCursor(columns);

【讨论】:

  • 感谢会检查并回复
猜你喜欢
  • 1970-01-01
  • 2019-02-13
  • 2012-11-17
相关资源
最近更新 更多