2016-01-01 140 views
2

我有一个关于android中的菜单的问题。android选项菜单崩溃

我创建了一个About.class + about.xml。在MainActivity.java我粘贴下面的代码:

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


    @Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
     Intent intent = null; 
     switch (item.getItemId()) { 
      case R.id.about: 
       intent = new Intent(this, About.class); 
       startActivity(intent); 
       return true; 

      default: 
       return super.onOptionsItemSelected(item); 
     } 

当我点击菜单上,并出现2分“关于”“帮助”。但是当我点击其中一个条目时,应用程序崩溃。我该怎么做,当我点击菜单中的“关于”时,about.xml会打开?

+4

发布您的崩溃日志 – Jas

+1

“我创建了一个About.class”,听起来不对。 –

+0

您的About.class在哪里? –

回答

0

试试这个

my_options_menu.xml

<menu xmlns:androclass="http://schemas.android.com/apk/res/android" > 
    <item android:id="@+id/item1" 
     android:title="About"/> 
    <item android:id="@+id/item2" 
     android:title="Help"/> 
</menu> 

在MainActivity

public class MainActivity extends Activity { 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
    } 
    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.my_options_menu, menu);//Menu Resource, Menu 
     return true; 
    } 
    @Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
     switch (item.getItemId()) { 
      case R.id.item1: 
      Intent intent = new Intent(this, About.class); 
      startActivity(intent); 
      return true;  
      case R.id.item2: 
       Intent intent = new Intent(this, Help.class); 
      startActivity(intent); 
       return true;  

       default: 
       return super.onOptionsItemSelected(item); 
     } 
    } 
} 

About.class

public class About extends Activity { 
@Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.about); 

    } 
} 

不要忘记添加文本或backgro und颜色到about.xml

+0

mhh,我是新来的。我不确定,如果About.class不正确: 'import android.app.Activity; import android.os.Bundle; public class关于extends Activity {@Override protected void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);的setContentView(R.layout.about); }}' – noobee

+0

About.class是你的About.java活动 –

+0

检查我更新的答案 –