私はアンドロイドを初めて使っています。私は修正できないという単純な問題があります。私が望むのは、リストビューをデータベースのIDでロードして、それをクリックするとデータベース内のIDと一致するようにすることです。レコードのIDをリストビューに読み込みます。android
public ArrayList<String> getAllContact() {
ArrayList<String> array_list = new ArrayList<>();
SQLiteDatabase db = this.getReadableDatabase();
Cursor res = db.rawQuery("SELECT * FROM contacts", null);
res.moveToFirst();
while (res.isAfterLast() == false){
array_list.add(res.getString(res.getColumnIndex(CONTACT_COLUMN_NAME)));
res.moveToNext();
}
return array_list;
}
mydb = new DBHelper(this);
ArrayList array_list = mydb.getAllContact();
ArrayAdapter arrayAdapter = new ArrayAdapter(this,android.R.layout.simple_list_item_1, array_list);
obj = (ListView) findViewById(R.id.listView1);
obj.setAdapter(arrayAdapter);
obj.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
int id_in_db = position + 1
Bundle dataBundle = new Bundle();
dataBundle.putInt("cid", id_in_db);
Intent intent = new Intent(getApplicationContext(), DisplayContact.class);
intent.putExtras(dataBundle);
startActivity(intent);
}
});
私はonclickitemから取得することができますが、データベース内の私の記録には一致しませんでした、リスト内のアイテムの位置は次のとおりです。ここでmycodeです。私は.setTag
メソッドが解決策になることができますが、私はこのコードを5月にどのように適用するのか分かりません。誰かが私にこれを助けることができますか?
'onItemClick'の' position'は、あなたのアダプターのクリックされた項目の位置です。したがって、 'arrayAdapter'を使ってdb IDに関連付けられたオブジェクトを取得することができます。 –
はい私はあなたに同意しますが、配列アダプタにIDを設定すると、リストビューを割り当てるときにonItemClickで呼び出すことができるパラメータがあります。 –
誰かがこれを助けてくれますか? –