2015-09-28 91 views
0

我有兩個活動(TextActivity.javaGrammarActivity.java),其中一個片段(ChoixLangue.java)是一個帶有四個按鈕的無線電組,用於選擇翻譯的語言。 GrammarActivity的父母爲TextActivity。 我可以在TextActivityGrammarActivity上選擇我想要的語言。而且我也可以在任何一個動作上改變它。 但如果我選擇在TextActivity一種語言,然後去GrammarActivity,改變語言,然後GrammarActivity,這讓我回想起TextActivity,它會顯示錯誤的單選按鈕,檢查 - 大概是因爲TextActivity顯示不刷新。 如何解決這個錯誤?這裏是TextActivity代碼`當活動再次可見時刷新活動的畫面

public class TextActivity extends AppCompatActivity { 
public ImageButton monImageBouton; 
public Button monBouton; 
public TextView monTextView; 
public static RadioButton monBoutonRadio; 
public static String langueChoisie = "francais"; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_text); 

    // une des solutions pour rendre la zone trado scrollable 
    TextView myXmlContent = (TextView)findViewById(R.id.zone_trado_scrollable); 
    myXmlContent.setMovementMethod(new ScrollingMovementMethod()); 

    verifLangue(); 
    playText(); 
    test("button8"); // indique la langue choisie 
} 


public void verifLangue(){ 
    if(langueChoisie == "english"){ 
     monBoutonRadio = (RadioButton)findViewById(R.id.english); 
     monBoutonRadio.setChecked(true); 
    } 
    else if(langueChoisie == "espanol"){ 
     monBoutonRadio = (RadioButton)findViewById(R.id.espanol); 
     monBoutonRadio.setChecked(true); 
    } 
    else if(langueChoisie == "chinois"){ 
     monBoutonRadio = (RadioButton)findViewById(R.id.chinois); 
     monBoutonRadio.setChecked(true); 
    } 
    else{ 
     monBoutonRadio = (RadioButton)findViewById(R.id.francais); 
     monBoutonRadio.setChecked(true); 
    } 
} 

public void onRadioButtonClicked(View view) { 

    boolean checked = ((RadioButton) view).isChecked(); 

    // Check which radio button was clicked 
    switch(view.getId()) { 
     case R.id.english: 
      if (checked) 
       langueChoisie = "english"; 
      break; 
     case R.id.francais: 
      if (checked) 
       langueChoisie = "francais"; // checked et définie a priori 
      break; 
     case R.id.espanol: 
      if (checked) 
       langueChoisie = "espanol"; 
      break; 
     case R.id.chinois: 
      if (checked) 
       langueChoisie = "chinois"; 
      break; 
    } 
}` 
+0

發佈您的代碼。 – Rami

回答

0

我不知道我完全理解你的問題,但最好的選擇是使用單選按鈕事件處理器將獲得選擇的值,並將其存儲的一部分對於兩個類(Grammer和Text)。 (我假設您希望您爲Grammer活動所做的選擇也應保留爲Text活動。)

+0

實際上,所選語言的價值被正確記錄並由兩項活動共享。當我回到沒有更新的TextActivity時,它只是所選語言的「顯示」,但翻譯功能與選擇的新語言一起工作。 – Andy

+0

你有任何ItemListeners嗎?代碼片段會很好 – bilde

+0

如何在評論中顯示代碼? – Andy