1

これは、テーブルに名前が存在するかどうかを確認するためのコード/メソッドです..

Contact getContact(String name) {
SQLiteDatabase db = this.getReadableDatabase();

    Cursor cursor = db.query(TABLE_CONTACTS, new String[] { KEY_ID,
            KEY_NAME, KEY_PH_NO }, KEY_NAME + "=?",
            new String[] { String.valueOf(name) }, null, null, null, null);
    if (cursor != null)
        cursor.moveToFirst();

    Contact contact = new Contact(Integer.parseInt(cursor.getString(0)),
            cursor.getString(1), cursor.getString(2));

    db.close();
    cursor.close();
    // return contact
    return contact;
}

arrayList 内のすべての名前を取得する関数が既にあります。問題を解決するために、上記の関数を呼び出す前に呼び出すことができます。しかし、私はそれを行う他の(まっすぐな)方法があるかどうかについて尋ねたいです

4

4 に答える 4

0

これは、テーブルからリスト内のすべての連絡先を取得するためのコードです...

/**
 * Getting all the contacts in the database
 */
public List<Contact> getAllContacts() {
    List<Contact> contactList = new ArrayList<Contact>();
    // Select All Query
    String selectQuery = "SELECT  * FROM " + TABLE_CONTACTS;

    SQLiteDatabase db = this.getWritableDatabase();
    Cursor cursor = db.rawQuery(selectQuery, null);

    // looping through all rows and adding to list
    if (cursor.moveToFirst()) {
        do {
            Contact contact = new Contact();
            contact.setID(Integer.parseInt(cursor.getString(0)));
            contact.setName(cursor.getString(1));
            contact.setPhoneNumber(cursor.getString(2));
            // Adding contact to list
            contactList.add(contact);
        } while (cursor.moveToNext());
    }

    cursor.close();
    db.close();

    // return contact list
    return contactList;
}

次に、名前がテーブル「false」に存在する場合は「true」を返す別の関数で呼び出され、それ以外の場合は...

    /**
     * checks if name already present in the database
     * @param name
     * @return
     */
    public boolean checkDbData(String name){
        List<Contact> contactList =getAllContacts();
        boolean checkName = false ;

        for(Contact cn: contactList){
            String dbName = cn.getName();
            if(name.equals(dbName)){
                checkName = true ;
            }               
        }

        return checkName;
    }

そして、この関数が「true」を返す場合、上記の関数が呼び出されて、contacti.eを取得します。

Contact getContact(String name) {
SQLiteDatabase db = this.getReadableDatabase();

Cursor cursor = db.query(TABLE_CONTACTS, new String[] { KEY_ID,
        KEY_NAME, KEY_PH_NO }, KEY_NAME + "=?",
        new String[] { String.valueOf(name) }, null, null, null, null);
if (cursor != null)
    cursor.moveToFirst();

Contact contact = new Contact(Integer.parseInt(cursor.getString(0)),
        cursor.getString(1), cursor.getString(2));

db.close();
cursor.close();
// return contact
return contact;

}

注:この連絡先はcontactListから取得することもできます。どちらも、必要な連絡先(この場合は「名前」)を取得するために使用できます。

于 2012-12-25T19:03:08.753 に答える
0
   SQLiteDatabase db = this.getReadableDatabase();
   Cursor cursor = db.query(TABLE_CONTACTS, new String[] { KEY_ID,
            KEY_NAME, KEY_PH_NO }, KEY_NAME + "=?",
            new String[] { String.valueOf(name) }, null, null, null, null);
           if(cursor.moveToFirst()){
         do {
            Double lat = cursor.getDouble(2);
            Double lon = cursor.getDouble(1);
           } while (trackCursor.moveToNext());
}
于 2012-12-24T18:13:43.527 に答える