Это показывает недостижимую ошибку оператора
Я пытаюсь сделать тост на выбранном элементе, но он показывает ошибку недостижимого оператора.
Мой код:
btn=(Button)findViewById(R.id.button);
btn.setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(View v) {
btn.performLongClick();
}
}
);
registerForContextMenu(btn);
}
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
menu.setHeaderTitle("For Optimum Results");
menu.add(0,v.getId(),0,"Hi");
menu.add(0,v.getId(),0,"Hello");
}
@Override
public boolean onContextItemSelected(MenuItem item) {
return super.onContextItemSelected(item);
if(item.getTitle()=="Hi"){
Toast.makeText(this,"hi",Toast.LENGTH_SHORT).show();
}
return true;
}
1 ответ
Решение
У вас есть два типа ошибок:
1) вернуть супер (return super.onContextItemSelected(item)
), это означает, что вы возвращаете свой метод в первой строке, поэтому строки ниже не выполняются.
2) неправильное сравнение строки (item.getTitle()=="Hi"
)
правильный код должен быть таким:
@Override
public boolean onContextItemSelected(MenuItem item) {
//return super.onContextItemSelected(item);//remove this line
if(item.getTitle().equal("Hi")){// also maybe you want to check not null for item.getTitle()
Toast.makeText(this,"hi",Toast.LENGTH_SHORT).show();
}
return true;
}