我有一个活动使用"片段"在布局xml中嵌入一个framgment标签。 片段类有一个简单的方法来按需设置它的TextView,如下所示:
MyFragment{
void setNameText(String user){
mNameText.setText(user);
}
}
我在活动oncreate里面得到片段引用,如下所示:
MyActvity::onCreate(){
myFrag = (MyFrag)getSupportFragmentManager().findFragmentById(R.id.myfrag_id);
}
现在我需要在启动活动时设置myFrag的名称。我试着调用" myFrag.setNameText(x)"来自Activity :: onCreate和Actvity :: onResume。两次都获得空指针异常insdie" setNameText()"方法on" mNameText"对象
Error:
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.xxxxxxActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.TextView.setText(java.lang.CharSequence)' on a null object reference
启动活动时访问子片段的ui对象的正确位置是什么?
答案 0 :(得分:0)
当Activity调用onCreate时,Fragment没有附加到Activity,你必须在片段的onCreateView方法中调用findViewById来绑定你的TextView,然后你就可以setText