如何在ActionBarDrawerToggle上添加?

时间:2017-06-05 18:23:25

标签: android

这是我的程序,但是如果我点击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);
    }
}

它不起作用。你能告诉我为什么吗?

1 个答案:

答案 0 :(得分:0)

我猜您正在使用exit菜单NavigationView尝试Item个应用。为此,您必须实施NavigationItemSelectedListener并在方法onNavigationItemSelected()中通过调用nav_exit检查应用中所需的exitfinish()

MainActivityonCrate()方法中添加以下代码:

@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点击事件。