我有一个使用setText()方法将TextView的值设置为“XXXX”的Fragment(A)。我用Fragment(B)替换Fragment(A),然后再次用A替换B。
当我这样做时,XXXX值在Fragment(A)TextView中消失了。我尝试在onStart以及onResume方法中调用TextView.setText方法-结果相同。当我调试代码时,我可以从字面上看到正在使用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")
}
最佳答案
对于片段,您无法使用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");
}