как установить значение текстового поля - PullRequest
0 голосов
/ 10 октября 2019

У меня есть действие по настройке, в котором есть два текстовых поля, которые принимают данные от пользователя, и эти значения затем сохраняются в файле базы данных. После нажатия кнопки сохранения эти значения сохраняются в базе данных, но когда я возвращаюсь к настройкамснова активными являются те ключевые слова, которые вводил пользователь, которых нет (они исчезают), но которые хранятся в базе данных. Я хочу установить текст этих текстовых полей в соответствии с тем, что вводил пользователь. Я пробовал, например, alarm.setText (db.getAlarm (). ToString ());в методе oncreate, но мое приложение падает. Все, что я хочу, чтобы мои ключевые слова оставались там (в текстовом поле) всякий раз, когда эта деятельность открыта или закрыта. Я также пытался сохранить состояние и т. Д., Но ничего не произошло. Заранее спасибо за помощь.

public class SettingsPage extends AppCompatActivity {

DatabaseHelper db;
EditText alarm , location , phone ;
String getPhone;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_settings_page);

}

public void saveClick(View view) {

    db = new DatabaseHelper(this);

    alarm = (EditText) findViewById(R.id.alarmTextBox);
    location = (EditText) findViewById(R.id.locationTextBox);
    phone = (EditText) findViewById(R.id.phoneTextBox);

    String s1 = alarm.getText().toString();
    String s2 = location.getText().toString();
    String s3 = phone.getText().toString();


    if (s1.isEmpty() || s2.isEmpty() || s3.isEmpty()) {

        Toast.makeText(getApplicationContext(), "Fields are empty", Toast.LENGTH_SHORT).show();
    } else {

        if (db.checkContactExist(s3))
        {
            Boolean keys = db.insertkeys(s1, s2, s3);
            if (keys == true)
            {
                Toast.makeText(getApplicationContext(), "Values Saved Successfully", Toast.LENGTH_SHORT).show();
                finish();
                //Toast.makeText(getApplicationContext(), s1, Toast.LENGTH_SHORT).show();
            }
        } else {
            if (!db.checkContactExist(s3))
            {
                phone.setError("Incorrect Contact No");
            } else
                {
                Toast.makeText(getApplicationContext(), "Values not saved", Toast.LENGTH_SHORT).show();
            }
        }
    }

}

// cancel button
public void cancelClick(View view){
    finish();
}
}

одна из функций моей базы данных -

    public String alarm(){
    String a ="";
    SQLiteDatabase db = this.getReadableDatabase();
    Cursor cursor = db.rawQuery("Select alarm from keywords",null);
    if(cursor.moveToFirst()){
        a = cursor.getString(cursor.getColumnIndex("alarm"));
    }
    cursor.close();
    return a;
}
...