当我从Main Activity调用fragment函数时,fragment onCreateView再次调用?

时间:2018-07-07 17:25:39

标签: android android-fragments android-activity fragment-oncreateview

实际上,我的问题是我想在按钮clickListner上将字符串从Main Activity发送到My Fragment,但是当我从Main activity调用Fragment函数时,片段的onCreateView再次调用,并且所有内容再次初始化。请指导我如何避免这个问题。

这是我的MainActivity代码:

ThirdFragment thirdFragment=new ThirdFragment();
                            FragmentTransaction fragmentTransaction=getSupportFragmentManager().beginTransaction().add(R.id.thirdfragment,thirdFragment,null);
                           fragmentTransaction.commitNow();
                            ThirdFragment fragment = (ThirdFragment) getSupportFragmentManager().findFragmentById(R.id.thirdfragment);
                           if(fragment!=null) {
                               fragment.Subcategories(text);

                           } 

这是片段功能代码:

public void Subcategories(String text){

    Log.d(TAG, "Subcategories: fragment calling "+text);

        mAPIService.searchcategory("2",text).enqueue(new Callback<ArrayList<DataStored>>() {
            @Override
            public void onResponse(Call<ArrayList<DataStored>> call, Response<ArrayList<DataStored>> response) {
               myRecyclerAdapter.addItems(response.body());
            }
            @Override
            public void onFailure(Call<ArrayList<DataStored>> call, Throwable t) {
                myRecyclerAdapter.addItems(null);


            }
        });


}

1 个答案:

答案 0 :(得分:0)

尝试这样;`

 ThirdFragment thirdFragment=new ThirdFragment();
    FragmentTransaction fragmentTransaction=getSupportFragmentManager().beginTransaction().replace(R.id.thirdfragment,thirdFragment,null);
                               fragmentTransaction.commitNow();
                                ThirdFragment fragment = (ThirdFragment) getSupportFragmentManager().findFragmentById(R.id.thirdfragment);
                               if(fragment!=null) {
                                   fragment.Subcategories(text);

                               } `
相关问题