【发布时间】:2016-05-10 20:54:24
【问题描述】:
我有一个带有相应代码的片段:
public class Fragment1 extends Fragment {
public static Fragment1 newInstance() {
Fragment1 fragment = new Fragment1();
return fragment;
}
public Fragment1() {
// Deve existir um construtor vazio
// na classe que estende um Fragment
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (getArguments() != null) {
}
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
return inflater.inflate(R.layout.activity_fragment1, container, false);
}
public void changeText(){
//this textview should be bound in the fragment onCreate as a member variable
TextView frv= (TextView) getView().findViewById(R.id.msgStatusPorta);
frv.setText("Porta Atualmente Aberta");
}
在我的 MainActivity 中,我这样做:
FragmentManager fm = getSupportFragmentManager(); //if you added fragment via layout xml
Fragment1 fragment = (Fragment1)fm.findFragmentById(R.id.fragment1);
在 onClick 中,我会这样做
fragment.changeText(view);
我尝试从方法 changeText() 更新我的 Textview 但是当我单击按钮并调用此方法时,我的应用程序崩溃了。有人可以帮助我吗?
谢谢。
【问题讨论】:
-
是 changeText(View v)
-
changeText是从哪里调用的?您需要确保它在 onViewCreated 或更高版本中以保证视图存在。
标签: android android-fragments fragment