2016-09-24 71 views
0

我有三個不同的類,當點擊class1中的ImageButton時,我希望class3中的TextView應該更改爲「50」。另一方面,當點擊class2中的ImageButton時,我希望Class3中的TextView應該更改爲「0」。如何將數據從兩個不同的活動傳遞到另一個

的Class1:

ImageButton button1 = (ImageButton) this.findViewById(R.id.imageButton); 
    if (button1 != null) { 
     button1.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 

       Intent passdata_intent1 = new Intent(class1.this, class3.class); 

       String data1 = "50"; 

       Bundle bundle1 = new Bundle(); 

       bundle1.putString("firstdata", data1); 

       passdata_intent1.putExtras(bundle1); 


       startActivity(passdata_intent1); 

      } 
     }); 
    } 

等級2:

ImageButton button1 = (ImageButton) this.findViewById(R.id.imageButton); 
    if (button1 != null) { 
     button1.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 

       Intent passdata_intent2 = new Intent(class2.this, class3.class); 

       String data2 = "0"; 

       Bundle bundle2 = new Bundle(); 

       bundle2.putString("seconddata", data2); 

       passdata_intent2.putExtras(bundle2); 

       startActivity(passdata_intent2); 



      } 
     }); 
    } 

CLASS3:

TextView score = (TextView) findViewById(R.id.textViewscore); 


     Bundle bundle1 = getIntent().getExtras(); 

     String data_1 = bundle1.getString("firstdata"); 

     score.setText(data_1); 




     Bundle bundle2 = getIntent().getExtras(); 

     String data_2 = bundle2.getString("seconddata"); 

     score.setText(data_2); 

所以我的問題是,當我啓動應用程序,我在Class2中的點擊ImageButton在class3中更改TextView。但是當我在class1中單擊ImageButton時,class3中沒有任何更改。

+2

Bcoz你設置'score.setText();'兩次。所以最後一個方法每次調用它並不顯示您的文本視圖中的第一個值數據 – sushildlh

回答

0

從代碼片段我看到的問題似乎是,你對「第一資訊」第一次檢查額外的意圖將其設置爲文本視圖,然後您檢查「seconddata」額外和覆蓋值在它的文本視圖中。

當您將第一個數據傳遞給活動時,第二個數據(如果未傳遞)應該爲空,因此您將分數文本設置爲null並從中刪除第一個數據值。

爲了將數據從2個不同的入口點傳遞到相同的文本視圖,用戶不需要爲用戶添加2個不同的名稱。 使用「firstdata」額外名稱爲class1和class2傳遞數據,它應該工作。

+0

感謝它的工作! –

0

在這兩種情況下,您都會忽略評分值。如果其他邏輯將工作正常。

if(getIntent().hasExtras("firsdata")){ 

     Bundle bundle1 = getIntent().getExtras(); 

     String data_1 = bundle1.getString("firstdata"); 

     score.setText(data_1); 

    } else{ 

     Bundle bundle2 = getIntent().getExtras(); 

     String data_2 = bundle2.getString("seconddata"); 

     score.setText(data_2); 
    } 
相關問題