2011-08-11 35 views
0

我有2個活動,Activity_A和Activity_B Activity_A都有一個複選框和一個按鈕充分利用previus活動表示

什麼,我試圖做的是,當我點擊一個Activity_A_button Activity_B將開始 根據Activity_A複選框狀態TextView可見或消失。

這裏是一個示例代碼

 public class Main extends Activity { 
    public static CheckBox check1; 
     private Button Button1; 

CheckBox check1 = (CheckBox)findViewById(R.id.checkBox1); 
Button1 = (Button) findViewById(R.id.button1); 


button1.setOnClickListener(new OnClickListener() { 
      public void onClick(View v) { 

final Intent i = new Intent(this, Activity_A.class); 

    startActivity(i); 

      } 
     }); 

Activity_B

Textview1 = (TextView)findViewById(R.id.textView1); 

    if (Main.check1.isChecked()) 

     { 
        //code here 

} 

的問題是,我得到當我點擊Activity_A按鈕@ if語句

任何想法NullPointerExeption?在此先感謝

回答

2

做這樣的事情。

調用activity.then從你的第二個活動找回它,並相應工作

final Intent i = new Intent(this, Activity_A.class); 
    i.putExtras("value",""+check1.isChecked());//sending checked value to next activity 
    startActivity(i); 





Textview1 = (TextView)findViewById(R.id.textView1); 
Bundle bundle = getIntent().getExtras(); 
boolean ok=Boolean.parseBoolean(bundle.getString("value")); 

    if (ok) //checkbox is checked in previous activity 
     { 
       //code here 
     } 
+0

謝謝!!!!!完美作品 –

+0

:)歡迎Eddie – Rasel

0

假設你沒有張貼一切(此代碼不會編譯)時發出的複選框的值,看起來像您分配CHECK1一個局部變量

CheckBox check1 = (CheckBox)findViewById(R.id.checkBox1); 

,而不是你的靜態類變量

public static CheckBox check1; 

因此Main.check1Activity_B中引用它時仍然爲空。然而,無論如何,當你泄漏UI元素時,這仍然是在兩個活動之間共享狀態的不好方法。你爲什麼不提交布爾值作爲捆綁額外的,這是開始Activity_B的意圖的一部分,或者在按鈕偵聽器中設置一個靜態布爾變量?兩者都是更好更容易的替代品。

0

我也認爲這是通過將意圖從第一個活動傳遞到第二個活動來糾正的。

final Intent i = new Intent(this, Activity_A.class); 
i.putExtras("value",""+check1.isChecked());//sending checked value to next activity 
startActivity(i);` 

寫入這在第一活動

Textview1 = (TextView)findViewById(R.id.textView1); 
Bundle bundle = getIntent().getExtras(); 
boolean ok=Boolean.parseBoolean(bundle.getString("value")); 

if (ok) //checkbox is checked in previous activity 
    { 
      //code here 
    }` 

寫入此在第二活性。

+0

感謝您的幫助 –