我已經離開Java一段時間了 - 功能編程一直是我的繆斯 - 最近決定跳回來與Android應用程序。事情進展順利。 Javascript的語法大部分都回到了我的大腦中,OO的設計原則有點生疏,但我並不害怕重構因子。Android選項菜單無法正常工作;我錯過了什麼?
我遇到的一個問題是平臺中的選項菜單。我在我的主要活動(下面)中通過菜單充氣器從XML文件加載它們,我可以看到它們!但是,當我按他們的東西變得怪異 - 但不喜歡與你最好的朋友看到你的祖母化妝,更不奇怪。
出於某種原因,當我按下第一個按鈕時,我在下面的代碼示例中收到友好的default
消息,「這不是一個選項,白癡!」。當我按第二個時,消息是「添加一個」。不知怎的,我已經離開了!但是,但是如何!?但爲什麼!?
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/add_single_id"
android:title="@string/add_one" />
<item android:id="@+id/add_multi_id"
android:title="@string/add_multi" />
</menu>
...這是由菜單充氣加載中...
public boolean onCreateOptionsMenu(Menu menu){
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.option_menu, menu);
return true;
}
...終於爲項目聽者選擇。
public boolean onOptionsItemSelected(MenuItem item){
switch(item.getItemId()){
case R.id.add_single_id:
Toast.makeText(this, "Adding One", Toast.LENGTH_LONG).show();
add_single();
break;
case R.id.add_multi_id:
Toast.makeText(this, "Adding n", Toast.LENGTH_LONG).show();
Intent i = new Intent(this, SelectMulti.class);
startActivityForResult(i, ACTIVITY_LOADMULTI);
break;
default:
Toast.makeText(this, "That's not an option, moron!", Toast.LENGTH_LONG).show();
return false;
}
return true;
}
BOOH,好的。我相信你的代碼是正確的,我傾向於認爲這將是看到那麼令人驚訝。我的祖母和我最好的朋友一起出...;) 如果你在控制檯打印它,你打開哪個值? – Snicolas
當你膨脹菜單,你能列出所有項目ID? – Snicolas
你可以清理你的項目,然後運行。在清潔後工作了 – mkso