2016-01-27 55 views
0

當我運行自動生成的HelloWorldActivity.java時,一切都很好。但是一旦我膨脹OptionsMenu,應用程序就會在手機中閃爍一次,然後關閉,然後什麼也沒有發生。以前我可以做到這一點,但現在它不只是發生。不知道爲什麼。沒有錯誤和例外。以下是Java中的代碼。裏面MenuFolder無法在Android中充氣OptionsMenu

import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.view.Menu; 
import android.view.MenuInflater; 

public class HelloWorldActivity extends AppCompatActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_hello_world); 
    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     System.out.println("Inside onCreateOptionsMenu"); 
     MenuInflater mi = getMenuInflater(); 
     System.out.println("Inside MenuInflater"); 
     mi.inflate(R.menu.menu_helloworld_to_registration, menu);//this line has some bug 
     System.out.println("Inside menu.xml file");//Because I cannot see this in my Logcat 
     return true; 
    } 
} 

菜單XML文件(RES /菜單)。

<?xml version="1.0" encoding="utf-8"?> 
<menu xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:app="http://schemas.android.com/apk/res-auto"> 
<item 
    android:id="@+id/mi_registration" 
    android:title="Registration" 
    app:showAsAction="always" 
    android:onClick="onRegistration" 
    android:icon="@android:drawable/ic_menu_save"></item> 
</menu> 

回答

0

我猜你錯過ActionBar/Toolbar。你需要Toolbar添加菜單

<android.support.design.widget.AppBarLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:theme="@style/AppTheme.NoActionBar.AppBarOverlay"> 

    <android.support.v7.widget.Toolbar 
     android:id="@+id/toolbar" 
     android:layout_width="match_parent" 
     android:layout_height="?attr/actionBarSize" 
     android:background="?attr/colorPrimary" 
     app:popupTheme="@style/AppTheme.NoActionBar.PopupOverlay" /> 

</android.support.design.widget.AppBarLayout> 

,比其設置爲操作欄在onCreate

.... 
setContentView(R.layout.activity_hello_world);  
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
setSupportActionBar(toolbar); 

public boolean onCreateOptionsMenu(Menu menu) { 
    getMenuInflater().inflate(R.menu.menu_helloworld_to_registration, menu); 
    return true; 
}