EDIT:TextView всегда имеет нуль внутри фрагмента
Так я называю метод фрагментом.
public void setTheTextView(int id) { //id is the id of the tab
if(parsed==true) { //parsed - ensures if s, p1 are not null
DummySectionFragment dummy = new DummySectionFragment();
if(id==0) dummy.setTheText(s, p1);
else if(id==1) dummy.setTheText(s, p2);
else dummy.setTheText(s, p3);
}
}
У меня есть следующий фрагмент, который отображает текст после завершения работы AsyncTask. Я прошел несколько потоков, из которых я мог бы собрать, что мы должны использовать представление, чтобы получить экземпляр TextView, а затем обновить его. Следовательно, я объявил
View rView
К сожалению, это не имеет никакого эффекта, и TextView всегда равен нулю. Фрагмент присутствует внутри MainActivity.java, а исходный код - ниже.
public static class DummySectionFragment extends Fragment {
TextView tView;
View rView;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
rView = inflater.inflate(R.layout.fragment_main_dummy, container, false);
tView = (TextView)rView.findViewById(R.id.section_label);
return rView;
}
public void setTheText(ArrayList<String> a, ArrayList<String> b) {
Log.d("bh","TextView:"+tView); //Always null here
if(tView != null) {
for(int i=0;i<6;i++) {
tView.append(a.get(i)+" "+b.get(i)+"\n\n");
}
}
}
}
Задача асинхронной присутствует в виде части MainActivity? Доступ к члену внутреннего класса из внешнего класса невозможен. –
Да, AsyncTask присутствует как часть MainActivity. Однако я не вызываю метод setTheText из AsyncTask. Я просто отправляю некоторый текст из AsyncTask в метод внешнего класса, разбираю его там, вызываю setTheText() DummySectionFragment. В любом случае, не могли бы вы рассказать мне, что я должен сделать, чтобы исправить эту ошибку? – thandasoru
U может вызвать метод setText из метода postExecute в AsyncTask – vivek