2016-03-16 31 views
-1

我想要建立一個簡單的cookie clicker-你按下一個按鈕,一個變量的增長由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

什麼是您的logcat的說?它會告訴你爲什麼你的應用程序崩潰。 –

+0

爲什麼要添加一個空包? – Pooya

+0

是不是你的問題解決了我的答案? –

回答

0

您正在試圖得到一個字符串,但你的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; 
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); 
相關問題