导航抽屉标题中的意图图像按钮

时间:2017-11-22 16:45:14

标签: android android-intent navigation-drawer android-imagebutton

screenshot of the navigation drawer

的AndroidManifest.xml

    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="com.example.richelle.hci">

        <application
            android:allowBackup="true"
            android:icon="@mipmap/ic_launcher"
            android:label="@string/app_name"
            android:roundIcon="@mipmap/ic_launcher_round"
            android:supportsRtl="true"
            android:theme="@style/AppTheme">
            <activity
                android:name=".MainActivity"
                android:label="Monitoring Health"
                android:theme="@style/AppTheme.NoActionBar">
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>
            <activity
                android:name=".SettingsActivity"
                android:label="@string/title_activity_settings"></activity>
        </application>
    </manifest>

nav_header_main.xml:

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:layout_width="match_parent"
        android:layout_height="@dimen/nav_header_height"
        android:background="@drawable/side_nav_bar"
        android:gravity="bottom"
        android:orientation="vertical"
        android:paddingBottom="@dimen/activity_vertical_margin"
        android:paddingLeft="@dimen/activity_horizontal_margin"
        android:paddingRight="@dimen/activity_horizontal_margin"
        android:paddingTop="@dimen/activity_vertical_margin"
        android:theme="@style/ThemeOverlay.AppCompat.Dark">

        <ImageButton
            android:id="@+id/profile_image"
            android:layout_width="83dp"
            android:layout_height="75dp"
            android:paddingTop="@dimen/nav_header_vertical_spacing"
            android:scaleType="fitCenter"
            android:onClick="onClick"
            app:srcCompat="@drawable/profile" />

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:paddingTop="@dimen/nav_header_vertical_spacing"
            android:text="Android Studio"
            android:textAppearance="@style/TextAppearance.AppCompat.Body1" />

        <TextView
            android:id="@+id/textView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="android.studio@android.com" />

    </LinearLayout>

MainActivity.java

    public class MainActivity extends AppCompatActivity
            implements NavigationView.OnNavigationItemSelectedListener {

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

            Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    //        ActionBar actionBar = getSupportActionBar();
    //        actionBar.setDisplayShowHomeEnabled(true);
    //        actionBar.setIcon(R.mipmap.ic_launcher);
            setSupportActionBar(toolbar);

            FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
            fab.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
                            .setAction("Action", null).show();
                }
            });

            DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
            ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
                    this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
            drawer.addDrawerListener(toggle);
            toggle.syncState();

            NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
            navigationView.setNavigationItemSelectedListener(this);

            ImageButton ib = (ImageButton)navigationView.findViewById(R.id.profile_image);
            ib.setOnClickListener(new View.OnClickListener(){
                @Override
                public void onClick(View view){
                    Intent intentLoadNewActivity = new Intent(MainActivity.this, Profile.class);
                    startActivity(intentLoadNewActivity);
                }
            });
        }

我正在尝试使用导航绘图中的图像按钮打开一个新的活动页面。图像按钮添加在nav_header_main.xml中,调用新活动的代码放在MainActivity.java中。但是,一旦我运行它,应用程序将强制关闭。任何人都可以帮我解决这个问题吗?

0 个答案:

没有答案