Android: общие настройки дают неизвестный текст - PullRequest
0 голосов
/ 16 марта 2020

Так что мне нужно мое приложение, чтобы сохранить и запомнить имя, которое пользователь вводит в поле поиска. Я использую общие настройки, чтобы сделать это .. Но когда я закрываю приложение и открываю снова, вместо сохраненного имени я получаю такой текст: android .support.AppCompatEditText {1f4bcb VEFD..Cl .F ... 197,800 -860,927 app: id / username}

Что я делаю не так?

  static SharedPreferences sharedPref;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_profile);
  namefield = (EditText) findViewById(R.id.username); //this is the user-input field
  Tname = (TextView) findViewById(R.id.NameLabel); //this label will be the username when user press the UPDATEbtn
  UPDATEbtn = (Button)findViewById(R.id.Update_btn);

  // Get from the SharedPreferences
    sharedPref = getApplicationContext().getSharedPreferences(PREFS_NAME, 0);
    String USERname = sharedPref.getString("name", String.valueOf(0));
    Tname.setText(USERname);
}




//this is the onClick method of my UPDATEbtn
public void UpdateInfo(View view)
{

Tname.setText(namefield.getText());

    sharedPref = getApplicationContext().getSharedPreferences(PREFS_NAME, 0);
    SharedPreferences.Editor editor = sharedPref.edit();
    editor.putString("name", String.valueOf(namefield));

  // Apply the edits!
    editor.apply();


}

Ответы [ 3 ]

1 голос
/ 16 марта 2020

заменить эту строку

editor.putString("name", String.valueOf(namefield));

на

editor.putString("name",  namefield.getText().toString());

На самом деле вы не получаете текстовое поле текста.

1 голос
/ 16 марта 2020

Вы пытаетесь получить доступ к тексту редактирования.

Попробуйте

editor.putString ("name", namefield.getText (). ToString ());

0 голосов
/ 16 марта 2020

вы должны получить редактируемый текст и сохранить его

// изменить эту строку

 editor.putString("name", String.valueOf(namefield));

как показано ниже

 editor.putString("name", String.valueOf(namefield.getText()));
...