菜单工具栏显示错误的片段

问题描述 投票:0回答:1

我有一个主要活动和两个片段,我需要在滑动片段时更改按钮,但是在第一个片段中不显示工具栏上的按钮,而在第二个片段中显示第一个片段的按钮(如果第二个片段显示)工具栏中没有按钮,第一个效果很好。

这是第一个片段

@Override
public void onCreate(Bundle savedInstanceState) {

    setHasOptionsMenu(true);

    super.onCreate(savedInstanceState);


    if (getArguments() != null) {
        mParam1 = getArguments().getString(ARG_PARAM1);
        mParam2 = getArguments().getString(ARG_PARAM2);
    }


}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {


    View vista =inflater.inflate(R.layout.fragment_clientes, container, false);

    Toolbar barra_principal = vista.findViewById(R.id.barra);
    ((AppCompatActivity)getActivity()).setSupportActionBar(barra_principal);


@Override
public void onCreateOptionsMenu(@NonNull Menu menu, @NonNull MenuInflater inflater) {

    inflater.inflate(R.menu.busqueda_menu,menu);
    MenuItem item = menu.findItem(R.id.busqueda);
    searchView = (SearchView) item.getActionView();
    searchView.setQueryHint("Busqueda Id, Nombre, Dirección");


    searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
        @Override
        public boolean onQueryTextSubmit(String query) {
            return false;
        }

        @Override
        public boolean onQueryTextChange(String textoBusqueda) {

            adaptador.getFilter().filter(textoBusqueda);

            return false;
        }
    });

    super.onCreateOptionsMenu(menu, inflater);
}

@Override
public boolean onOptionsItemSelected(@NonNull MenuItem item) {

    int id = item.getItemId();

    if (id==R.id.busqueda){
        //Toast.makeText(getActivity(),"Busqueda",Toast.LENGTH_LONG).show();
    }else if (id==R.id.busquedadia){

        if(lydias.getVisibility() == View.VISIBLE){
            lydias.setVisibility(View.GONE);
        }else{
            lydias.setVisibility(View.VISIBLE);
        }

    }

    return super.onOptionsItemSelected(item);
}

这是第二个片段。

    public void onCreate(Bundle savedInstanceState) {

    setHasOptionsMenu(true);

    super.onCreate(savedInstanceState);

    AdaptadorProductos adaptador;
    manager = new dbManager(getContext());




    if (getArguments() != null) {
        mParam1 = getArguments().getString(ARG_PARAM1);
        mParam2 = getArguments().getString(ARG_PARAM2);
    }
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {

    View vista =inflater.inflate(R.layout.fragment_productos_, container, false);
    Toolbar barra_principal = vista.findViewById(R.id.barra);
    ((AppCompatActivity)getActivity()).setSupportActionBar(barra_principal);

    listaProductos = new ArrayList<>();

    rcvProductos = vista.findViewById(R.id.rcvProductos);
    rcvProductos.setLayoutManager(new LinearLayoutManager(getContext()));

    llenaLista();



    // Inflate the layout for this fragment
    return vista;
}

@Override
public void onCreateOptionsMenu(@NonNull Menu menu, @NonNull MenuInflater inflater) {

    inflater.inflate(R.menu.busqueda_menu,menu);
    MenuItem item = menu.findItem(R.id.busqueda);
    searchView = (SearchView) item.getActionView();
    searchView.setQueryHint("Busqueda Id, Descripción,");


    searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
        @Override
        public boolean onQueryTextSubmit(String query) {
            return false;
        }

        @Override
        public boolean onQueryTextChange(String textoBusqueda) {

            adaptador.getFilter().filter(textoBusqueda);

            return false;
        }
    });

    super.onCreateOptionsMenu(menu, inflater);
}

@Override
public boolean onOptionsItemSelected(@NonNull MenuItem item) {

    int id = item.getItemId();

    if (id==R.id.busqueda){
        //Toast.makeText(getActivity(),"Busqueda",Toast.LENGTH_LONG).show();
    }else if (id==R.id.busquedadia){


    }

    return super.onOptionsItemSelected(item);
}

我有一个主要活动和两个片段,我需要在滑动片段时更改按钮,但是在第一个片段中不显示工具栏中的按钮,而在第二个片段中显示按钮...

java android toolbar
1个回答
0
投票

类似的问题:请参见this answer.

© www.soinside.com 2019 - 2024. All rights reserved.