我正在尝试更新一些TextViews
。我有3个布局Main_Activity.XML
默认为Portrait
和Landscape
。这些布局中的TextView
都具有相同的andoid:id
我已经阅读了更新TextView
的所有内容,并且不知道为什么会崩溃整个应用。
我想也许TextView txt = (TextView) findViewById(R.id.txtViewActiveTimeProp1)
返回null然后当我尝试setText
时,我得到一个空指针异常。有什么想法吗?
TextView txt = (TextView) findViewById(R.id.txtViewActiveTimeProp1);
String strPref = retrievePrefs("pref_active_times_prop1");
txt.setText(strPref);
在Button
onclick
事件中,在setContentView
完成后很长时间内发生相同的结果。验证了我用来引用我所有3个布局中TextView
出口的ID。
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
PreferenceManager.setDefaultValues(this, R.xml.preference, false);
setContentView(R.layout.activity_main);
TextView txt = (TextView) findViewById(R.id.txtViewActiveTimeProp1);
String strPref = retrievePrefs("pref_active_times_prop1");
txt.setText(strPref);
}
答案 0 :(得分:1)
您好,您必须在onCreate方法中执行findViewById。 因为你在事件监听器中执行findViewById,所以它返回null。
在您的代码中执行以下更改。
public class MainActivity extends Activity {
TextView txt;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
PreferenceManager.setDefaultValues(this, R.xml.preference, false);
setContentView(R.layout.activity_main);
txt = (TextView) findViewById(R.id.txtViewActiveTimeProp1);
String strPref = retrievePrefs("pref_active_times_prop1");
txt.setText(strPref);
}
并在您的点击监听器中
String strPref = retrievePrefs("pref_active_times_prop1");
txt.setText(strPref);
希望这有帮助。
答案 1 :(得分:0)
似乎值String strPref = retrievePrefs(“pref_active_times_prop1”); 将为null,打印strPref值并检查