在活动启动/启动时设置片段 UI



我有一个活动使用"fragment"标签在布局xml中嵌入了一个框架。片段类有一个简单的方法来按需设置它的 TextView,如下所示:

MyFragment{
 void setNameText(String user){
   mNameText.setText(user);
 }
}

我在活动创建中获得片段引用,如下所示:

MyActvity::onCreate(){
        myFrag = (MyFrag)getSupportFragmentManager().findFragmentById(R.id.myfrag_id);
}

现在我需要在启动活动时设置 myFrag 的名称。我尝试从 Activity::onCreate 和 Actvity::onResume 调用"myFrag.setNameText(x("。两次都会在"mNameText"对象上获得空指针异常独立"setNameText(("方法。

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 对象的合适位置是什么?

当活动调用onCreate时,片段没有附加到活动上,你必须在片段的onCreateView方法调用findViewById来绑定你的TextView,然后你可以设置文本

最新更新