これがばかげているように思われる場合は申し訳ありませんが、私はこれらすべてのものに少し慣れていません。状況は、リストビューに表示する必要のあるデータベースに大量のデータが保存されていることです。最初のビューは15行をプルし、データベースの14列のうち2列のみを使用します。このアダプタを使用して、これをリストビューに表示します。
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/のようなリストビュー内に配置することを検討していました。これは、アダプターを変更した場所でもあります。このようにして、dbの2つのフィールドからのデータをリストビューの各アイテムに配置します。これは完璧です。1つのデータポイントとそれに伴うコメントになります。問題は、この時点でカーソルに1行しかないため、@ Overrideの後のビットが1回だけ実行されるため、リストビューの7つの項目の代わりに1つ取得することです。たとえそれがまったく異なる方法でそれをすることであるとしても、私は本当にどんな助けにも感謝します。