创建数据库的列表视图,列包含数组
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]);
}
}
不能正常工作....请
我等你!
**我试过这样做**
您应该看到此 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()
首先我的英语很弱... 我创建了一个数据库,其中包含这样的数组:
_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]);
}
}
不能正常工作....请
我等你!
**我试过这样做**
您应该看到此 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()