无法从选项菜单中的所选选项转到新活动

时间:2013-06-19 04:26:00

标签: android

这是我的Help.java。首先在我的项目中,我会显示一个弹出窗口,警告数据库是否没有联系。然后,当用户单击确定时,它会显示包含如何创建联系人的帮助。在这个活动中,我添加了我的选项菜单。但是当我点击option1时没有任何反应。

package com.pandroid.phonebook;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;             
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;             

public class Help extends Activity {             

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.helpmenu);                  
    }
    public boolean onCreateOptionsMenu(Menu menu) {
        MenuInflater inflater =getMenuInflater();
        inflater.inflate(R.menu.options, menu);
        return true;
    } 
    @Override
    public boolean onOptionsItemSelected(MenuItem item){
        switch(item.getItemId()) {
            case R.id.item1:
                 startActivity(new Intent(Help.this, Add_item.class));                                   
                 break;                             
            case R.id.item2:
                 startActivity(new Intent(Help.this, Add_item2.class));                                  
                 break;                    
            case R.id.item3:
                 startActivity(new Intent(Help.this, Add_item3.class));
                 break;
            case R.id.item4:
                 startActivity(new Intent(Help.this, Add_item4.class));
                 break;
            default:
                 return super.onOptionsItemSelected(item);
        }
        return true;
     }

 }

R.menu.options:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
   <item android:id="@+id/item1"  android:title="@string/op1" android:icon="@android:drawable/ic_menu_add"/>
   <item android:id="@+id/item2"  android:title="@string/op2" android:icon="@android:drawable/ic_menu_search"/>
   <item android:id="@+id/item3"  android:title="@string/op3" android:icon="@android:drawable/ic_menu_manage"/>
   <item android:id="@+id/item4"  android:title="@string/op4" android:icon="@android:drawable/ic_menu_directions"/>

</menu>

3 个答案:

答案 0 :(得分:2)

试试这个 -

 public boolean onMenuItemSelected(int featureId, MenuItem item) {

    switch(item.getItemId()) {          

    case R.id.item1:
                         startActivity(new Intent(Help.this, Add_item.class));

                         return true;

                     case R.id.item2:
                         startActivity(new Intent(Help.this, Add_item2.class));

                         return true;                    
                     case R.id.item3:
                         startActivity(new Intent(Help.this, Add_item3.class));
                         return true;
                     case R.id.item4:
                         startActivity(new Intent(Help.this, Add_item4.class));
                         retuen true;
}
    return super.onMenuItemSelected(featureId, item);
}

答案 1 :(得分:1)

像这样更改你的代码

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.options, menu);
    return super.onCreateOptionsMenu(menu);
} 

@Override
public boolean onOptionsItemSelected(MenuItem item){
    switch(item.getItemId()) {
        case R.id.item1:
             startActivity(new Intent(Help.this, Add_item.class));                                   
             break;                             
        case R.id.item2:
             startActivity(new Intent(Help.this, Add_item2.class));                                  
             break;                    
        case R.id.item3:
             startActivity(new Intent(Help.this, Add_item3.class));
             break;
        case R.id.item4:
             startActivity(new Intent(Help.this, Add_item4.class));
             break;
        default:
             return super.onOptionsItemSelected(item);
    }
    return true;
 }

我测试了这段代码,这工作正常。

答案 2 :(得分:0)

这是因为您正在使用getApplicationContext()。只需替换如下:

startActivity(new Intent(YourActivity.this, Add_item.class));