私はコンテキストメニュー項目のタイトルを取得して文字列と比較しています。以下のコードは期待どおりに動作していないようですが、なぜですか?文字列と文字列とをアンドロイドで比較する
@Override
public boolean onContextItemSelected(MenuItem item) {
if (item.getTitle().equals(String.valueOf(R.string.item_edit_text))){ // <-- compared to string extract
Toast.makeText(this, "Match",Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(this, "No Match",Toast.LENGTH_SHORT).show();
}
return super.onContextItemSelected(item);
}
"編集" とR.string.item_edit_text
でitem.getTitle
結果が "編集" です。なぜ、上記のコードは "No Match"になるのですか?
以下のコードは正常に動作するようです、しかし、
@Override
public boolean onContextItemSelected(MenuItem item) {
if (item.getTitle().equals("Edit")){ // <--- Compared to hardcoded string
Toast.makeText(this, "Match",Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(this, "No Match",Toast.LENGTH_SHORT).show();
}
return super.onContextItemSelected(item);
}
'String.valueOf(R.string.item_edit_text) 'ではなく' getString(R.string.item_edit_text) 'を試してください。 –
それはうまくいく、どんな考え? – Leb
まだ正確な理由を見つけようとしています。私は 'String.valueOf()'も動作すると思っていましたが、動作しませんでした。 –