我正在尝试构建一个简单的cookie点击器 - 按一个按钮变量增加1。 现在,我正在尝试建立一个商店,所以你可以购买升级 - 变量增长更多,自动点击...... 所以,我正在尝试使用intent传递我的变量(cookie的数量,用于点击的cookie),但每次我尝试进入活动时,我的应用程序崩溃。 这是我的MainActivity代码:
public static int NumOfCookies=0;
public static int CookieForClick=1;
public final static String EXTRA_MESSAGE = "com.example.cookieclicker01";
public final static String EXTRA_INTENT = "com.example.cookieclicker01";
public void GetToShop(View v){
Intent intent = new Intent(this, ShopActivity.class);
Bundle extras = new Bundle();
intent.putExtra(EXTRA_MESSAGE, NumOfCookies);
intent.putExtra(EXTRA_INTENT, CookieForClick);
intent.putExtras(extras);
startActivity(intent);
}
这是第二个活动的代码:
Intent intent = getIntent();
var1= intent.getStringExtra(MainActivity.EXTRA_MESSAGE);
var2 = intent.getStringExtra(MainActivity.EXTRA_INTENT);
NumOfCookies= Integer.parseInt(var1);
CookiesForClick= Integer.parseInt(var2);
TextView t1= (TextView) findViewById(R.id.Cookies);
t1.setText(Integer.toString(NumOfCookies));
答案 0 :(得分:0)
您正在尝试获取String,但您的var1和var2是int值。
var1= intent.getStringExtra(MainActivity.EXTRA_MESSAGE);
var2 = intent.getStringExtra(MainActivity.EXTRA_INTENT);
正确的是:
var1= intent.getInt(MainActivity.EXTRA_MESSAGE);
var2 = intent.getInt(MainActivity.EXTRA_INTENT);
或者您将把var1的类型,var2更改为String:
public static String NumOfCookies=0;
public static String CookieForClick=1;
答案 1 :(得分:0)
这个 -
//Bundle extras = new Bundle();
intent.putExtra(EXTRA_MESSAGE, NumOfCookies);
intent.putExtra(EXTRA_INTENT, CookieForClick);
//intent.putExtras(extras);
注释掉这两行。基本上你在最后一行中将一个空的Bundle放在你的意图中,从而替换你以前存储的值。
或那 -
Bundle extras = new Bundle();
extras.putString(EXTRA_MESSAGE, NumOfCookies);
extras.putString(EXTRA_INTENT, CookieForClick);
intent.putExtras(extras);