当actvitivity开始/启动时设置片段ui

时间:2017-03-19 01:34:48

标签: android android-fragments

我有一个活动使用"片段"在布局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对象的正确位置是什么?

1 个答案:

答案 0 :(得分:0)

当Activity调用onCreate时,Fragment没有附加到Activity,你必须在片段的onCreateView方法中调用findViewById来绑定你的TextView,然后你就可以setText