在Android Fragment onResume中重新填充值

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)

Mat*_*man 5

使用片段你不能使用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)

  • 谢谢.getView()而不是getActivity()做到了.再次感谢. (2认同)