【发布时间】:2011-04-04 02:25:06
【问题描述】:
我在这里的代码有问题。我在我的代码中使用 SharedPreferences,并且在代码的一行中收到 NullPointerException。完整代码如下:
public class Exercise extends Activity {
String WEIGHT = "0";
String AGE = "0";
String FEET = "0";
String INCHES = "0";
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.exercise);
SharedPreferences myPrefs = this.getSharedPreferences("myPrefs", MODE_WORLD_READABLE);
SharedPreferences.Editor prefsEditor = myPrefs.edit();
prefsEditor.putInt(WEIGHT, 0);
prefsEditor.putInt(AGE, 0);
prefsEditor.putInt(FEET, 0);
prefsEditor.putInt(INCHES, 0);
prefsEditor.commit();
final EditText weightField = (EditText) findViewById(R.id.EditTextWeight);
try {
prefsEditor.putInt(WEIGHT, Integer.parseInt(weightField.getText().toString()));
prefsEditor.commit();
} catch(NumberFormatException nfe) {
System.out.println("Could not parse " + nfe);
}
NullPointerException 出现在这一行:
prefsEditor.putInt(WEIGHT, Integer.parseInt(weightField.getText().toString()));
谢谢!
编辑:这是调用 setContentView(R.layout.main) 的活动:
public class CalorieIntakeCalculator extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
public void next(View view) {
Intent intentExercise = new Intent(view.getContext(), Exercise.class);
startActivityForResult(intentExercise, 0);
}
}
当在 main.xml 中按下“下一步”按钮时,它会发送next,将活动从卡路里摄入计算器切换到锻炼。
【问题讨论】:
标签: android nullpointerexception sharedpreferences