2016-03-09 47 views
-1

所以我試圖將一個boolean值「isclicked」從主活動中的一個按鈕轉移到一個Java類,該類將在if語句中使用該值(true),調試器顯示沒有錯誤,但應用程序在啓動時崩潰,這裏是我的代碼片段:如何將主活動的布爾值轉換爲類?

Main.java

if (isclicked) { 
     Intent myIntent = new Intent(this, AP.class); 
     myIntent.putExtra("isclicked", "true"); 
     startActivity(myIntent); 
    }else{ 
     Intent myIntent = new Intent(this, AP.class); 
     myIntent.putExtra("isclicked", "false"); 
     startActivity(myIntent); 
    } 

和AP.java

Boolean value = getIntent().getBooleanExtra("isclicked", false); 

歡迎任何其他方法。

+1

崩潰是無關的。這段代碼沒問題(如果有點浪費 - 你不需要if,只需putExtra(「isclicked」,isclicked)就可以)。另外,爲額外名稱使用常量是防止輸入錯誤的好主意。 –

+1

不會'putExtra(「isclicked」,「true」);'放一個字符串,而不是一個布爾值? –

+0

並且'AP.java'是一個'Activity'?你只是說它是一個「Java類」,所以你不能只是發送一個意圖到一個普通的Java類。 –

回答

0

把它簡化一下,像這樣的,它會工作:

Intent myIntent = new Intent(this, AP.class); 
myIntent.putExtra("isclicked", isclicked); 
startActivity(myIntent); 
0
if (isclicked) {  
    Intent myIntent = new Intent(this, AP.class); 
    myIntent .putExtras("isclicked", true); 
    startActivity(myIntent);  
} 

獲取額外的意圖:

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    Boolean value = getIntent().getExtras().getBoolean("isclicked"); 
} 
0

代碼

if (isclicked) { 
    Intent myIntent = new Intent(this, AP.class); 
    myIntent.putExtra("isclicked", "true"); 
    startActivity(myIntent); 
} 

//更改

if (isclicked) { 
    Intent myIntent = new Intent(this, AP.class); 
    myIntent.putExtra("isclicked", true); 
    startActivity(myIntent); 
} 

不要將布爾值用引號引起來。如果你用引號傳遞它,它將作爲字符串傳遞。只要傳遞真實而不是「真實」。