Java Android:共享首选项提供未知文本
所以我需要我的应用程序保存并记住用户在搜索字段中输入的名称。 我使用共享首选项来实现这一点。。 但当我关闭应用程序并再次打开时,我得到的不是保存的名称,而是这样的文本: android.support.appcompatiedittext{1f4bcb VEFD..Cl.F..197800-860927 app:id/username} 我做错了什么Java Android:共享首选项提供未知文本,java,android,file,sharedpreferences,preferences,Java,Android,File,Sharedpreferences,Preferences,所以我需要我的应用程序保存并记住用户在搜索字段中输入的名称。 我使用共享首选项来实现这一点。。 但当我关闭应用程序并再次打开时,我得到的不是保存的名称,而是这样的文本: android.support.appcompatiedittext{1f4bcb VEFD..Cl.F..197800-860927 app:id/username} 我做错了什么 static SharedPreferences sharedPref; @Override protected void onCreate
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();
}
您正在尝试访问编辑文本 试一试 editor.putStringname,namefield.getText.toString 更换此线路 editor.putStringname,String.valueOfName字段; 到
实际上,您没有得到文本字段的文本。您应该得到编辑视图文本并保存它 //换行
editor.putString("name", String.valueOf(namefield));
如下
editor.putString("name", String.valueOf(namefield.getText()));
editor.putString("name", String.valueOf(namefield.getText()));