java - 每当调用 onCreate() 时增加一个变量
问题描述
每当调用 onCreate() 但我的应用程序崩溃时,我想增加测试变量。请帮我找出解决方法,并告诉我为什么我的应用程序崩溃了。
public int test = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextView num = (TextView) findViewById(R.id.textNum);
new MainActivity().test++;
num.setText(new MainActivity().test);
}
解决方案
你永远不应该Activity
自己创建一个实例
您可以直接访问您test
的,MainActivity
无需使用MainActivity().test
访问您的test
变量
如果您想为您设置一个integer
值,textview
那么您需要将您的整数转换为一个string
值,例如String.valueOf(test)
或""+test
试试这个方法
public int test=0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextView num=(TextView) findViewById(R.id.textNum);
test++;
num.setText(String.valueOf(test));
}
如果您想在onCreate()
调用时增加您的测试变量,那么您可以使用SharedPreferences
示例代码
import androidx.appcompat.app.AppCompatActivity;
import android.content.SharedPreferences;
import android.os.Bundle;
public class Main2Activity extends AppCompatActivity {
String prefName = "MY_PREFS_NAME";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
SharedPreferences prefs = getSharedPreferences(prefName, MODE_PRIVATE);
SharedPreferences.Editor editor = getSharedPreferences(prefName, MODE_PRIVATE).edit();
int test = prefs.getInt("counter", 0);
test++;
editor.putInt("counter", test);
editor.apply();
}
}
推荐阅读
- ios - 无法从 JSON 中获取值(无法将类型“__NSCFNumber”(0x7fff87b9c520)的值转换为“NSDictionary”(0x7fff87b9d5b0))
- javascript - 渲染动态渲染列表 React/Redux 时使用的旧道具
- amazon-web-services - 如何在 F# 中访问部分 AWS Lambda 事件?
- sql - 插入表需要来自另一个表的特定条件
- ruby-on-rails - 在 Ruby on Rails 项目中将“关注点”存储在哪里?(轨道 5.2+)
- mitmproxy - 如何用 mitmproxy/mitmdump 替换 JS 文件
- android-studio - 在 AndroidManifest.xml 中使用字符串资源时出现问题
- python - 解析和 strptime 不会在熊猫中转换我的日期
- scala - Scala:从文件中查找字符出现
- mysql - where 语句中不存在别名表