onCreateView 不会在 Fragment 中触发

萨桑

起初的问题是 getView() 在我的片段中总是返回 null 。正如其他人提供的那样,我在 onCreateView 中使用了一个视图来获得这样的视图:

     private  View vv ;

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
    vv = inflater.inflate(R.layout.fragment_exam_page2, container, false); ;
    return  vv ;

}

所以我可以使用 vv 而不是 getView() 。但现在我看到 onCreateView 根本没有被调用!在我的活动中,我这样做:

    FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
    TwoLineOptionsFragment twoLineOptionsFragment = new TwoLineOptionsFragment();
            transaction.replace(R.id.fragment_answerContainer, twoLineOptionsFragment).commit();

            twoLineOptionsFragment.updateOptions(question.AnswerOptions) ;// my public function doing stuff ... 

那么问题出在哪里呢?

编辑:如果重要,这是我的功能:

    public  boolean updateOptions(ArrayList<Exam.Question.Answer> answers)
    {
    try
    {


        QuestionOptionView optionView = (QuestionOptionView)(vv.findViewById(R.id.option1)) ;
        //QuestionOptionView optionView = (QuestionOptionView)(getView().findViewById(R.id.option1)) ;
        optionView.setText(answers.get(0).AnswerText);
    return reue ;
    }
    // ... 
    }
达利什

Fragment 的 onCreateView() 将始终被调用。您的情况的问题是您试图在调用 onCreateView() 之前访问视图对象。以下内容过早执行。

 twoLineOptionsFragment.updateOptions(question.AnswerOptions) ;

不要Fragment直接从 Activity调用方法,因为您可能不确定它Fragment是否准备就绪。您应该将您的逻辑移动到Fragment类本身并提供回调,Activity以便您可以将结果传递回活动。

在您的情况下,您可以将answers.get(0).AnswerText值作为参数传递给 Fragment 并将其显示在 TextView 上。欢呼:)

TwoLineOptionsFragment f = new TwoLineOptionsFragment();
Bundle args = new Bundle();
args.putString("arg", answers.get(0).AnswerText);
f.setArguments(args);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

未调用 Fragment 中的 onCreateView

来自分类Dev

didSelectRowAtIndexPath不会在ViewController中触发

来自分类Dev

“hashchange”不会在 Wordpress 中触发

来自分类Dev

addValueChangeListener 不会在 android 中触发

来自分类Dev

OnGetMarkText 不会在 TContourSeries 中触发

来自分类Dev

为什么这个计时器不会在我的 Fragment 中执行?

来自分类Dev

过渡不会在悬停时触发

来自分类Dev

OnLongClickListener不会在ViewPager上触发

来自分类Dev

appRouter 不会在加载时触发

来自分类Dev

卸载应用不会在服务中触发onDestroy

来自分类Dev

鼠标滚轮事件不会在Chrome中触发

来自分类Dev

异步断言不会在Scalatest中触发

来自分类Dev

动作不会在React + Redux中触发reducer

来自分类Dev

加载的事件不会在UserControl中触发

来自分类Dev

滚动事件不会在Sencha Touch中触发

来自分类Dev

ngClick不会在递归模板中触发

来自分类Dev

Butterknife onclick不会在片段中触发该方法

来自分类Dev

FactoryBot不会在特征中触发回调

来自分类Dev

状态正在改变,但转换不会在Xstate中触发

来自分类Dev

ngClick不会在递归模板中触发

来自分类Dev

RowDeselect不会在自定义MvxTableViewSource中触发

来自分类Dev

Click事件不会在jquery中触发

来自分类Dev

AppServer.NewRequestReceived事件不会在SuperSocket中触发

来自分类Dev

React不会在组件中触发功能

来自分类Dev

RxJs 订阅不会在根角度模块中触发

来自分类Dev

绑定滚动事件不会在角度指令中触发

来自分类Dev

新窗口加载永远不会在 javascript 中触发

来自分类Dev

watchTermination 不会在 akka-http 流中触发

来自分类Dev

附加到 viewpager 时不会调用 Fragment 的 onCreateView

Related 相关文章

热门标签

归档