I have the following Warning:
Method invocation 'equals' may produce 'java.lang.NullPointerException'
My line of code is as follows:
if(menu.getItem(2).getIcon().getConstantState().equals(ContextCompat.getDrawable(fragmentActivity, R.mipmap.buscar_warning).getConstantState()))
I have never generated an error, but I do not understand the warning at all, what I am doing is comparing the icon of my top menu with an image that I have in the mipmap
directory.
EDIT:
The same thing happens to me in the other if
with menu.getItem(0)
and menu.getItem(1)
EDITO2:
This happens in my method "filterChecks" where I keep everything selected in "Sort by", "Filter by" or "Search" (this depends on the RadioButtom, CheckButtom and an EditText that has a menu), and I pass it by an adapter that reorders and / or hides elements of an ExpandableListView
EDITO3:
I need to do this equality outside the method onOptionsItemSelected (MenuItem item) {...} Do not insist. This is my onOptionsItemSelected
@Override
public boolean onOptionsItemSelected(MenuItem item) {
this.item = item;
switch(item.getItemId()){
case R.id.ordenar_item:
//Desaparecen todos los demás
if(filtrosLl.getVisibility()==View.VISIBLE)
filtrosLl.setVisibility(View.GONE);
if(busquedaMet.getVisibility()==View.VISIBLE)
busquedaMet.setVisibility(View.GONE);
//Aparece/desaparece Ordenar Por
if(prioridadesLl.getVisibility()==View.GONE) {
prioridadesLl.setVisibility(View.VISIBLE);
}else{
prioridadesLl.setVisibility(View.GONE);
}
return true;
case R.id.filtrar_item:
//Desaparecen todos los demás
if(prioridadesLl.getVisibility()==View.VISIBLE)
prioridadesLl.setVisibility(View.GONE);
if(busquedaMet.getVisibility()==View.VISIBLE)
busquedaMet.setVisibility(View.GONE);
//Aparece/desaparece Filtrar Por
if(filtrosLl.getVisibility()==View.GONE) {
filtrosLl.setVisibility(View.VISIBLE);
//mensajeFiltrosTv.setVisibility(View.GONE);
}else {
filtrosLl.setVisibility(View.GONE);
/*if(!TextUtils.isEmpty(mensajeFiltrosTv.getText()))
mensajeFiltrosTv.setVisibility(View.VISIBLE);*/
}
return true;
case R.id.buscar_item:
//Desaparecen todos los demás
if(prioridadesLl.getVisibility()==View.VISIBLE)
prioridadesLl.setVisibility(View.GONE);
if(filtrosLl.getVisibility()==View.VISIBLE)
filtrosLl.setVisibility(View.GONE);
//Aparece/desaparece Buscar Por
if(busquedaMet.getVisibility()==View.GONE) {
busquedaMet.setVisibility(View.VISIBLE);
}else{
busquedaMet.setVisibility(View.GONE);
}
return true;
case android.R.id.home:
fragmentActivity.finish();
return true;
default:
return super.onOptionsItemSelected(item);
}
}