在Android中刷新片段

时间:2017-08-14 21:22:19

标签: android android-fragments search

我有2个标签,每个标签都有一个片段。每个片段都有回收者视图。我有一个操作栏,里面有一个搜索属性(我正在使用materialsearchview)。我想搜索每个片段中的数据 当我的应用程序加载时,搜索正在为第一个片段工作,然后如果我滑动到下一个片段并返回到第一个片段,搜索不起作用,因为与第一个片段相关的方法没有被调用。所以当用户在第一个片段时如何调用它们。

    public class Tab1Fragment extends Fragment {
        private static final String TAG = "Tab1Fragment";
        Context c;
        String user_name,password;
        MaterialSearchView materialSearchView;
        String url = null;

        RecyclerView rv1;
        TableLayout tabLayout;
        @Nullable
        @Override
        public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {

            setUserVisibleHint(false);
            View view = inflater.inflate(R.layout.tab1_fragment,container,false);

            tabLayout=(TableLayout) view.findViewById(R.id.tablelayout);
            final TableLayout tabLayout1=(TableLayout)view.findViewById(R.id.tablelayout1);
            final TableLayout tabLayout2=(TableLayout)view.findViewById(R.id.tablelayout2);

            materialSearchView = (MaterialSearchView)getActivity().findViewById(R.id.search_view);

            SharedPreferences sharedPreferences=this.getActivity().getSharedPreferences("postman", Context.MODE_PRIVATE);
            user_name=sharedPreferences.getString("username","nothing");
            password=sharedPreferences.getString("password","nothing");


            rv1 = (RecyclerView) view.findViewById(R.id.mRecycler1);


            rv1.setLayoutManager(new LinearLayoutManager(c));
            rv1.setItemAnimator(new DefaultItemAnimator());




            Download2 d2 = new Download2(getActivity(),url,rv1,user_name,password,tabLayout,materialSearchView);

            d2.execute();

            return view;
        }

The other fragment is:

public class Tab3Fragment extends Fragment {
private static final String TAG = "Tab3Fragment";

String user_name,password;
Context c;
MaterialSearchView materialSearchView3;
RecyclerView rv, rv1;
TableLayout tabLayout1 , tabLayout;


@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
    setUserVisibleHint(false);
    View view = inflater.inflate(R.layout.tab3_fragment,container,false);


    tabLayout1=(TableLayout)view.findViewById(R.id.tablelayout1);


    materialSearchView3 = (MaterialSearchView)getActivity().findViewById(R.id.search_view);

    SharedPreferences sharedPreferences=this.getActivity().getSharedPreferences("postman", Context.MODE_PRIVATE);
    user_name=sharedPreferences.getString("username","nothing");
    password=sharedPreferences.getString("password","nothing");

    rv = (RecyclerView) view.findViewById(R.id.mRecycler);


    rv.setLayoutManager(new LinearLayoutManager(c));
    rv.setItemAnimator(new DefaultItemAnimator());


    return view;
}

@Override
public void setMenuVisibility(boolean menuVisible) {
    super.setMenuVisibility(menuVisible);
    if(menuVisible)
    {
        Download3 d3 = new Download3(getActivity(),url,rv,user_name,password,tabLayout1, materialSearchView3);
        d3.execute();
    }

  }
 }

0 个答案:

没有答案