我正在制作一个带有计数器的应用程序,当我点击 ImageView 时计数器会上升。这行得通,但现在我想将计数器保存到 SharedPreferences 对象。
我试图在 onCreate 方法中初始化 SP 对象,这显然不起作用。当我尝试在全局范围内使用 sp.getInt(...) 时,它也不起作用。我明白为什么会出现问题(尝试在 sp 对象初始化之前从它获取 Integer),但我不知道如何解决它。
public class MainActivity extends AppCompatActivity {
int counterint;
TextView counter;
String stringnumber;
SharedPreferences sharedPreferences = this.getSharedPreferences("com.example.hugelon", Context.MODE_PRIVATE);
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
sharedPreferences.getInt("hugcounter", 0);
}
public void hughim(View view){
counter = findViewById(R.id.countertv);
stringnumber = counter.getText().toString();
counterint = Integer.parseInt(stringnumber);
counterint++;
counter.setText(Integer.toString(counterint));
sharedPreferences.edit().putInt("hugcounter", counterint);
}
}
java.lang.RuntimeException:无法实例化活动 ComponentInfo {com.example.hugelon/com.example.hugelon.MainActivity}:java.lang.NullPointerException:尝试调用虚拟方法'android.content.SharedPreferences android.content.Context。空对象引用上的 getSharedPreferences(java.lang.String, int)'
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.SharedPreferences android.content.Context.getSharedPreferences(java.lang.String, int)' 对空对象引用
跃然一笑
波斯汪
DIEA
斯蒂芬大帝
相关分类