对不起,如果这看起来很愚蠢,但我对所有这些东西都很陌生。情况是我有很多数据存储在数据库中,我需要在列表视图中呈现。第一个视图提取 15 行,并且仅使用数据库中 14 列中的两列。我使用这个适配器在列表视图中显示它:
private class CustomListAdapter extends SimpleCursorAdapter {
private Cursor cursor;
public CustomListAdapter(Context context, int textViewResourceId, Cursor cursor, String from[], int to[]) {
super(context, textViewResourceId, cursor, from, to);
this.cursor = cursor;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View v = convertView;
if (v == null) {
LayoutInflater vi = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = vi.inflate(R.layout.row, null);
}
cursor.moveToPosition(position);
if (cursor != null) {
TextView lt = (TextView) v.findViewById(R.id.lefttext);
TextView rt = (TextView) v.findViewById(R.id.righttext);
if (lt != null) {
lt.setText(/*cursor.getString(cursor.getColumnIndex(EwstableContentProvider.TIMESTAMP))*/cursor.getString(cursor.getColumnIndex(EwstableContentProvider._ID))); }
if (rt != null){
rt.setText(cursor.getString(cursor.getColumnIndex(EwstableContentProvider.TOTALEWS)));
}
}
return v;
}
}
}
这甚至可能很愚蠢,但至少它有效。现在,在下一个活动中,我需要显示所有列中的数据,但仅来自用户在上一个活动中选择的行。我正在考虑把它放在一个列表视图中,比如http://www.softwarepassion.com/android-series-custom-listview-items-and-adapters/中的那个,这也是我修改适配器的地方。这样,我会将数据库中两个字段的数据放入列表视图中的每个项目中。这是完美的,它将是一个数据点和一个与之相伴的评论。问题是此时我的游标中只有一行,所以@Override 之后的位只执行一次,所以我得到了一个,而不是列表视图中的 7 个项目。我真的很感激任何帮助,即使是以完全不同的方式来做。