2015-09-28 1 views
0

У меня есть два вида деятельности (TextActivity.java и GrammarActivity.java), на которых один фрагмент (ChoixLangue.java) представляет собой группу радиостанций с четырьмя кнопками для выбора языка перевода. Родитель от GrammarActivity: TextActivity. Я могу выбрать язык, который я хочу, либо на TextActivity, либо GrammarActivity. И я могу изменить его на то, какой бы я ни был. Но если я выбираю язык на 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

Я не уверен, что я полностью понял ваш вопрос, но лучший выбор будет использовать eventhandlers для радио-кнопок, которые будут получать выбранное значение и сохранить его для обоих классов (Grammer и Text). (Я предполагаю, что вы хотите, чтобы выбор, который вы сделали для деятельности Grammer, также должен храниться и для текстовой активности.)

+0

Фактически, значение выбранного языка правильно записывается и разделяется двумя действиями. Это просто «отображение» выбранного языка, когда я возвращаюсь к TextActivity, который не обновляется (но переводы выполняют функцию с выбранным новым языком). – Andy

+0

У тебя есть предмет ItemListeners? фрагмент кода был бы хорош – bilde

+0

как я могу показать код в комментарии? – Andy

Смежные вопросы