在这里,我试图调用setText方法,但由于一些初始化问题,我的应用程序正在崩溃。
EditText edittext;
SharedPreferences settings;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
image =(ImageView) findViewById(R.id.imageView1);
image.setImageResource(R.drawable.logo);
settings= getSharedPreferences(PREFS_NAME,Context.MODE_PRIVATE);
if(settings.contains("sharedString")){
String returnString=settings.getString("sharedString","Couldn't load the data");
edittext.setText(returnString);
}
}
答案 0 :(得分:2)
edittext
未初始化。在onCreate
初始化它。
在onCreate
你有
edittext.setText(returnString); // not initialized in onCreate
你有
edittext =(EditText)findViewById(R.id.edit_message); // initialized in sendMessage
sendMessage
中的。因此,您可能会在初始化之前将文本设置为edittext
答案 1 :(得分:0)
请尝试使用该代码。
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
image =(ImageView) findViewById(R.id.imageView1);
image.setImageResource(R.drawable.logo);
edittext = (EditText)findViewById(R.id.edittext);
settings= getBaseContext().getSharedPreferences(PREFS_NAME,Context.MODE_PRIVATE);
SharedPreferences.Editor editor = settings.edit();
editor.putString("sharedString", "Shared Preference Data");
editor.commit();
String returnString=settings.getString("sharedString","Couldn't load the data");
edittext.setText(returnString);
}
在使用代码之前,先看一下共享的Preferences及其示例。
希望它应该有效。请让我知道。如果它不起作用,请告诉我你想要做什么。
答案 2 :(得分:0)
这是一个非常常见的错误..我应该在通过
调用方法之前初始化editTextedittext =(EditText)findViewById(R.id.edit_message);