現在、入力IDをデータベースで検索して単一の結果を得ることができるアプリケーションをセットアップしました。例えば。ユーザーはID = 1を入力し、IDのデータベースにはIDが1のレコードが含まれています。データベースを配列リストで検索し、結果の配列リストを取得する
ここでは、IDの範囲を含むarraylistを使用してデータベースをクエリして、例えば3、456、731など...データベースを検索したい私はまた、複数の値を特定のidにグループ化しました。たとえば、データベースが3のidを検索すると、5つの結果が検索されます。これらの結果のそれぞれの電話番号を別のarraylistに戻してログに出力できます。 。
私はこれを十分に説明してくれることを望みますが、詳細が必要な場合は質問してください。
以下のコードは、単一の結果を得るために使用されるクエリの変更バージョンを示していますが、複数の結果を得るために間違っていることはわかりません。
活動....私が間違った場所 は、あなたが見ることができる
// New array list which is going to be used to store values from the database
ArrayList<String> contactsList;
// This arrayList has been received from another activity and contains my id's
ArrayList<String> contacts = intent.getStringArrayListExtra("groupCode");
// The database which i'm using
ContactDBHandler contactDBHandler = new ContactDBHandler(getApplicationContext(), null, null, 1);
//getAllValues is used to pass my arraylist id's to the database.
contactsList = contactDBHandler.GetAllValues(contacts);
// Simple log statement to loop and display results
for (int i = 0; i < contactsList.size(); i++){
Log.i("Numbers", contactsList.get(i));
}
ContactDBHandler
クエリ
// I'm telling it to get the contact number from the contact_list
// when the groupcode matches the code recieved.
public ArrayList<String> GetAllValues(ArrayList groupCode)
{
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = null;
String alarmName = "";
ArrayList<String> list = new ArrayList<>();
cursor = db.rawQuery("SELECT contact_number FROM contact_list WHERE grp_code=?", new String[]{groupCode+ ""});
if (cursor.moveToFirst())
{
do
{
list.add(cursor.getString(0));
}
while (cursor.moveToNext());
}
if (cursor != null && !cursor.isClosed())
{
cursor.close();
}
return list;
}
のおかげ?
あなたは例外を取得しているか、出力が期待される結果と一致していませんか? –
現在のところ、私のログは空であり、連絡先の配列リストをテストするだけで、IDの使用を待っていることを確認できます。 – user3403733