だから私はから移入している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 が設定されていないようです (または でプロパティが取得されていません)。ViewBindersetTaggetTag