我有一个主要活动和两个片段,我需要在滑动片段时更改按钮,但是在第一个片段中不显示工具栏上的按钮,而在第二个片段中显示第一个片段的按钮(如果第二个片段显示)工具栏中没有按钮,第一个效果很好。
这是第一个片段
@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);
}
我有一个主要活动和两个片段,我需要在滑动片段时更改按钮,但是在第一个片段中不显示工具栏中的按钮,而在第二个片段中显示按钮...
类似的问题:请参见this answer.