簡體   English   中英

android sqlite顯示數據庫

[英]android sqlite displaying database

我試圖創建一個應用程序,但遇到了麻煩!

這就是我已經擁有的:

數據庫中填充了不同字符串的列表,例如不同的動物-以及一種定義用戶輸入的信息是否已存在於數據庫中的方法

我想要的是:

當用戶輸入一種動物的正確名稱時,我要顯示該特定動物的ROWID,該動物“熊”的ID應該為54,這就是我要向用戶顯示的內容

我的databasehelper有以下代碼:

      Public boolean insertInfo(String info){

        SQLiteDatabase db = this.getReadableDatabase();
        String[] cols = new String[]{COL_1, COL_2};

        Cursor c = db.query(TABLE_NAME_LAND, cols, COL_2 + "=?", new String[]{"" + info}, null, null, null);
        if (c.getCount() > 0) {
            return false;
        } else return true;
    }

這是我的MainActivity中的代碼,具體取決於助手的這一部分:

 public void AddData() {
       btnAddData.setOnClickListener(new View.OnClickListener() {
                    @Override
             public void onClick(View v) {
                  boolean isInserted = myDb.insertInfo(editName.getText().toString());
                     if (isInserted)
                        Toast.makeText(MainActivity.this, "Wrong",Toast.LENGTH_SHORT).show();
                     else
                        Toast.makeText(MainActivity.this, "Correct", Toast.LENGTH_LONG).show();
                        editName.setText(null);
                    }
                });
    }
}

我想要的幫助是確定如何顯示用戶在EditText中鍵入的特定STRING的信息(ID),例如,它在列表視圖中與DATABASE中已經存在的相同。

在我得到答案之后,對代碼進行了一些編輯之后,我在MainActivity中有了這個:

            btnAddData.setOnClickListener(
            new View.OnClickListener() {
                @Override
                public void onClick(View v) {

                    boolean isInserted = myDb.insertData(editName.getText().toString());

                    if (isInserted) {
                        Cursor data = DatabaseHelper.getID(editName.getText().toString());
                        int id = data.getInt(data.getColumnIndex("COL_2"));
                    }
                }
            });
}

}

這在我的DatabaseHelper中:

    public DatabaseHelper(Context context) {
    super(context, DATABASE_NAME, null, DATABASE_VERSION);
}

public Cursor getID(String ID) {
    SQLiteDatabase db = this.getWritableDatabase();
    Cursor c = db.rawQuery("Select * from " + TABLE_NAME_LAND + " WHERE " + COL_1 + "=?", new String[]{ID});
    return c;

}

public boolean insertData(String name) {

    SQLiteDatabase db = this.getReadableDatabase();
    //String[] cols = new String[]{COL_1, COL_2};

    Cursor c = db.rawQuery("Select * from " + TABLE_NAME_LAND + " WHERE " + COL_1 + "=?", new String[]{name});
    if (c.getCount() > 0) {
        return false;
    } else return true;
}
}

在本節中編譯時出現錯誤

Cursor data = DatabaseHelper.*getID*(editName.getText().toString());

無法從靜態上下文引用Error非靜態方法getID(String)

嘗試這個

   Cursor c = db.rawQuery("Select * from " + TABLE_NAME_LAND + " WHERE " + COL_1 + "=?", new String[]{info});

您可以在(isInserted)之后寫

Cursor  data = databaseHelper.getID(editName.getText().toString());
data.moveToFirst(); // add this line
int id = data.getInt(data.getColumnIndex("COL_2"));

在您的databaseHelper中,添加以下代碼

public Cursor getID(String ID)
{
    SQLiteDatabase db = this.getWritableDatabase();
    Cursor c = db.rawQuery("Select * from " + TABLE_NAME_LAND + " WHERE " + COL_1 + "=?", new String[]{info});
    return c;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM