だから私はから移入しているListView
(を使用してListActivity
)を持っていSQLiteDatabase
ます。行の ID (PK) をビューにアタッチしようとしているのでonListItemClick
、各リスト項目でその ID を使用して処理を実行できます。
View
任意のデータをusingに設定してsetTag
取得できることを読みましたgetTag
(実際にはまだうまく機能していないため、これが問題である可能性があります)。これは、私が使用しているものの簡略化されたバージョンです(簡単/簡潔にするため):
public class Favorites extends ListActivity {
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
FavoritesDB db = FavoritesDB.getInstance(this);
Cursor c = db.fetchFavorites();
startManagingCursor(c);
String[] columns = new String[] { "_id" };
int[] to = new int[] { R.id.word };
SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, R.layout.favorite, c, columns, to);
adapter.setViewBinder(new SimpleCursorAdapter.ViewBinder() {
public boolean setViewValue(View view, Cursor cursor, int columnIndex) {
view.setTag(cursor.getInt(0));
return true;
}
});
setListAdapter(adapter);
}
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
Object wordID = v.getTag();
Toast.makeText(getBaseContext(), "ID=" + wordID, 1).show();
}
}
ListView
が読み込まれ、 が表示されますToast
が、常にであるため、 への呼び出し"ID=null"
で ID が設定されていないようです (または でプロパティが取得されていません)。ViewBinder
setTag
getTag