当活动再次可见时刷新活动的画面

问题描述:

我有两个活动(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

我不知道我完全理解你的问题,但最好的选择是使用单选按钮事件处理器将获得选择的值,并将其存储的一部分对于两个类(Grammer和Text)。 (我假设您希望您为Grammer活动所做的选择也应保留为Text活动。)

+0

实际上,所选语言的价值被正确记录并由两项活动共享。当我回到没有更新的TextActivity时,它只是所选语言的“显示”,但翻译功能与选择的新语言一起工作。 – Andy

+0

你有任何ItemListeners吗?代码片段会很好 – bilde

+0

如何在评论中显示代码? – Andy