Повторное заполнение значений в Android Fragment onResume - PullRequest
4 голосов
/ 22 ноября 2011

У меня есть Fragment (A) с TextView со значением «XXXX», установленным с помощью метода setText ().Я заменяю Фрагмент (A) на Фрагмент (B), а затем снова заменяю B на A.

При этом значение XXXX исчезает в TextView фрагмента (A).Я попытался вызвать метод TextView.setText в onStart, а также методы onResume - тот же результат.Когда я отлаживаю код, я буквально вижу, что используется метод setText и значение XXXX есть.Я распечатал его на LogCat, и он тоже там, но я не вижу никаких значений на экране.

Я попытался поискать в Google и не смог получить ответ.Буду признателен за любые указатели.

Код

public void onResume() { 
  super.onResume(); 
  String dData = readFileFromSDCard(); 
  String dArray[] = dData.split(";"); 
  txtName = (TextView) getActivity().findViewById(R.id.txtName); 
  txtName.setText("first name")
}

1 Ответ

5 голосов
/ 22 ноября 2011

С фрагментами вы не можете получить макет используя getActivity().findViewById(R.id.txtName);, вы должны сделать это так.Это вызывается, когда вы также заменяете фрагмент B обратно на A.

Этот код, конечно, должен стоять в вашем классе Fragment.

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

    View view = inflater.inflate(R.layout.your_layout, container, false);        
    String driverData = readFileFromSDCard(); 
    String driverArray[] = driverData.split(";"); 
    txtName = (TextView) view.findViewById(R.id.txtName); 
    txtName.setText("Andrew");

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...