这是我的程序,但是如果我点击nav_exit,我的程序就会退出。点击时它无法正常工作。请帮帮我。
1.navigation_menu.xml
<group android:checkableBehavior="single">
<item
android:id="@+id/nav_exit"
android:title="EXIT" />
<item
android:id="@+id/nav_gallery"
android:title="gallery" />
</group>
<item android:title="ssssssss">
<menu>
<item
android:id="@+id/nav_share"
android:title="share" />
<item
android:id="@+id/nav_se2nd"
android:title="se2nd" />
<item
android:id="@+id/nav_send"
android:title="send" />
</menu>
</item>
2.MainActivity无法在点击菜单上使用。
package info.mt_online.www.myapplicationv1;
import android.content.Intent;
import android.provider.Settings;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.ActionBar;
import android.support.v7.app.ActionBarDrawerToggle;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.MenuItem;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
private DrawerLayout mDrawerLayout;
private ActionBarDrawerToggle mToggle;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mDrawerLayout= (DrawerLayout) findViewById(R.id.drawerLayout);
mToggle = new ActionBarDrawerToggle(this, mDrawerLayout, R.string.open, R.string.close);
mDrawerLayout.addDrawerListener(mToggle);
mToggle.syncState();
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if(mToggle.onOptionsItemSelected(item)){
int id = item.getItemId();
if (id == R.id.nav_exit) {
finish();
System.exit(0);
return true;
}
}
return super.onOptionsItemSelected(item);
}
}
它不起作用。你能告诉我为什么吗?
答案 0 :(得分:0)
我猜您正在使用exit
菜单NavigationView
尝试Item
个应用。为此,您必须实施NavigationItemSelectedListener
并在方法onNavigationItemSelected()
中通过调用nav_exit
检查应用中所需的exit
和finish()
。
在MainActivity
内onCrate()
方法中添加以下代码:
@Override
protected void onCreate(Bundle savedInstanceState) {
...........
.................
// NavigationView
NavigationView mNavigationView = (NavigationView) findViewById(R.id.your_navigation_view);
mNavigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == R.id.nav_exit) {
finish();
}
return true;
}
});
}
仅供参考, onOptionsItemSelected()
用于处理Toolbar
选项MenuItems
点击事件。