use*_*585 4 java android replace fragment
我有一个片段(A),其TextView值为"XXXX",使用setText()方法设置.我用Fragment(B)替换Fragment(A)然后再用A替换B.
当我这样做时,值XXXX在Fragment(A)TextView中消失了.我尝试在onStart中调用TextView.setText方法以及onResume方法 - 结果相同.当我调试代码时,我可以逐字地看到正在使用的setText方法和值XXXX.我把它打印在LogCat上,它也在那里,但我在屏幕上看不到任何值.
我试过谷歌搜索,我无法得到答案.我会很感激任何指针.
码
public void onResume() {
super.onResume();
String dData = readFileFromSDCard();
String dArray[] = dData.split(";");
txtName = (TextView) getActivity().findViewById(R.id.txtName);
txtName.setText("first name")
}
Run Code Online (Sandbox Code Playgroud)
使用片段你不能使用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");
}
Run Code Online (Sandbox Code Playgroud)