创建数据库的列表视图,列包含数组

Create a listview of the database ,columns contains arrays

首先我的英语很弱... 我创建了一个数据库,其中包含这样的数组:

_id >汽车 >零件

0 >丰田 >part1,part2,part3...

我用在listview中添加Simplecurseradapter class;工作正常

但我想将数组部分获取到 Textview 数组并显示它的行;

我试过使用split 我尝试使用此代码


    @Override
    public void bindView(View view, Context context, Cursor cursor)
    {
        LinearLayout linearLayout=(LinearLayout)view.findViewById(R.id.llayout);
        TextView car=(TextView)view.findViewById(R.id.dictionaryrawTextView2);
        ArrayList<String> partslist=new ArrayList<String>(Arrays.asList(cursor.getString(cursor.getColumnIndex("parts")).split(",")));
        TextView parts[]=new TextView[partslist.size()];

        car.setText(cursor.getString(cursor.getColumnIndex("car")));
        for(int i=0 ;i<partslist.size();i++){
            parts[i]=new TextView(mContext);
            parts[i].setText(partslist.get(i));
            linearLayout.addView(parts[i]);
        }
    }

不能正常工作....请

我等你!

**我试过这样做**

http://i.stack.imgur.com/PVotD.jpg

您应该看到此 cursor.getString(cursor.getColumnIndex("parts")).split(",")) 行给您的结果。

让它变成这样:

String testOutput = cursor.getString(cursor.getColumnIndex("parts")).split(","));
Log.d("somethinghere", "Parts String: " + testOutput);

然后看看它是否正常工作,然后慢慢将其余代码添加到其中,看看哪一部分失败了。


然而,

您的根本问题是您的数据库设计不当,它不可扩展且不更新table(很容易)。

你应该有 2 个 table,其中 1 个是 [ _id, cars ],另一个是 [ _id, car_id, part ](或者将 'car_id' 从第二个 table 并且有第三个 'look up table' 即 [ id, car_id, part_id ] )。这将允许您存储汽车并将其与任意数量的 'parts' 相关联。一对多关系。

对此的查询变得稍微复杂一些,但至少是可扩展的。

解决方法 使用

getCursor().getString(getCursor().getColumnIndex("a")));

替换

mCursor

getCursor()