Ошибка статического метода при получении данных в Android Studio через Sqlite - PullRequest
0 голосов
/ 30 ноября 2018

Я новичок в этом программировании в Android Studio. У меня проблема с этим кодом, который я пишу из учебника.

public void  onClick(View v){
                    if (editusername.getText().toString().trim().length() == 0 || editpassword.getText().toString().trim().length() ==0) {
                        Toast.makeText(getApplicationContext(), "Semua Kolom harus Diisi", Toast.LENGTH_SHORT).show();}

                    else try{ String username = editusername.getText().toString().trim();
                        String password = editpassword.getText().toString().trim();
                        String query = "Select * From User where username = '"+username+"'";
                        if(DbManager.fetch().getCount()>0){
                            Toast.makeText(getApplicationContext(), "Already Exist!", Toast.LENGTH_SHORT).show();
                        }else{
                            DbManager.insert(username, password);

                            Toast.makeText(getApplicationContext(), "Added successfully!", Toast.LENGTH_SHORT).show();

                        }

                        }catch (Exception e) {
                        e.printStackTrace();
                    }

В методе 'fetch' и 'insert' былоошибка «нельзя ссылаться как статический метод».

Это код в соответствующем классе DbManager

  public void insert(String usn, String pwd) {
    ContentValues contentValue = new ContentValues();
    contentValue.put(SQLiteHelper.USERNAME, usn);
    contentValue.put(SQLiteHelper.PASSWORD, pwd);
    this.database.insert(SQLiteHelper.TABLE_NAME_USER, null, contentValue);
}


public Cursor fetch() {
    Cursor cursor = this.database.query(SQLiteHelper.TABLE_NAME_USER, new String[]{SQLiteHelper._ID, SQLiteHelper.USERNAME, SQLiteHelper.PASSWORD}, null, null, null, null, null);
    if (cursor != null) {
        cursor.moveToFirst();
    }
    return cursor;
}

1 Ответ

0 голосов
/ 30 ноября 2018

Вы никогда не создавали экземпляр класса DbManager.

Добавление DbManager manager = new DbManager(); и последующее использование manager.fetch() и manager.insert(params...) должно решить вашу проблему.

Выполнение Class.Method() - этовозможно только если Method() объявлено как public static void Method().Если это не так, вам нужно сначала создать объект, а затем вызвать метод для этого объекта, как я показал вам выше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...