编辑:
这就是我在片段中调用该方法的方式。
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 完成后显示文本。我经历了几个线程,从中我可以收集到我们必须使用 View 来获取 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");
}
}
}
}