DBHari
DBHari

Reputation: 73

My navigation view is not showing my menu items

I have a navigation menu inside drawer layout with menu and header defined. My navigation view is showing header but not menu items. I am not able to see anything from navigation_menu.xml. Please can you help me in resolving this issue?

This is Android Studio with Java

**Activity File **

    <?xml version="1.0" encoding="utf-8"?>

    <androidx.drawerlayout.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:id="@+id/activity_main"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@android:color/holo_green_dark">

            <LinearLayout
                android:id="@+id/mylayout"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:background="#4030e8"
                android:gravity="start"
                android:orientation="vertical"
                android:paddingLeft="24dp"
                android:paddingTop="24dp"
                android:paddingRight="24dp"
                tools:context=".MainActivity">

                <LinearLayout
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="2dp"
                    android:layout_marginBottom="2dp"
                    android:orientation="horizontal">

                    <TextView
                        android:id="@+id/sourceInfo"
                        android:layout_width="144dp"
                        android:layout_height="wrap_content"
                        android:text="Source"
                        android:textSize="12sp" />

                    <Space
                        android:layout_width="135dp"
                        android:layout_height="wrap_content"
                        android:layout_weight="1" />

                    <RadioGroup
                        android:id="@+id/sourceGroup"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:orientation="horizontal">

                        <RadioButton
                            android:id="@+id/tc"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:checked="false"
                            android:text="Main Centre"
                            android:textSize="12sp" />

                        <RadioButton
                            android:id="@+id/rc"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:checked="false"
                            android:text="Sub Centre"
                            android:textSize="12sp" />

                    </RadioGroup>

                </LinearLayout>

                <Space
                    android:layout_width="match_parent"
                    android:layout_height="5dp" />

                <LinearLayout
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:orientation="horizontal">

                    <TextView
                        android:id="@+id/checktime"
                        android:layout_width="138dp"
                        android:layout_height="wrap_content"
                        android:text="Time"
                        android:textSize="12sp" />

                    <Space
                        android:layout_width="5dp"
                        android:layout_height="wrap_content"
                        android:layout_weight="1" />

                    <EditText
                        android:id="@+id/toatext"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:ems="10"
                        android:enabled="true"
                        android:inputType="text"
                        android:textSize="12sp"
                        android:visibility="visible" />
                </LinearLayout>

                <Space
                    android:layout_width="match_parent"
                    android:layout_height="5dp" />

                <LinearLayout
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:orientation="horizontal">

                    <TextView
                        android:id="@+id/enter_age"
                        android:layout_width="81dp"
                        android:layout_height="wrap_content"
                        android:text="Age"
                        android:textSize="12sp" />

                    <Space
                        android:layout_width="65dp"
                        android:layout_height="wrap_content"
                        android:layout_weight="1" />

                    <Spinner
                        android:id="@+id/ageSpinner"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content" />
                </LinearLayout>

                <Space
                    android:layout_width="match_parent"
                    android:layout_height="5dp" />

                <LinearLayout
                    android:layout_width="311dp"
                    android:layout_height="wrap_content"
                    android:orientation="horizontal">

                    <TextView
                        android:id="@+id/GenderLabel"
                        android:layout_width="144dp"
                        android:layout_height="wrap_content"
                        android:text="Gender"
                        android:textSize="12sp" />

                    <Space
                        android:layout_width="135dp"
                        android:layout_height="wrap_content"
                        android:layout_weight="1" />

                        <RadioGroup
                            android:id="@+id/GenderGroup"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:orientation="horizontal">

                            <RadioButton
                                android:id="@+id/f"
                                android:layout_width="85dp"
                                android:layout_height="wrap_content"
                                android:checked="true"
                                android:text="Female"
                                android:textSize="12sp" />

                            <RadioButton
                                android:id="@+id/m"
                                android:layout_width="105dp"
                                android:layout_height="wrap_content"
                                android:checked="false"
                                android:text="Male"
                                android:textSize="12sp" />

                        </RadioGroup>
                </LinearLayout>

                <Space
                    android:layout_width="match_parent"
                    android:layout_height="5dp" />

                <LinearLayout
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="2dp"
                    android:layout_marginBottom="2dp"
                    android:orientation="horizontal">

                    <Button
                        android:id="@+id/saveData"
                        android:layout_width="78dp"
                        android:layout_height="34dp"
                        android:onClick="save"
                        android:text="Save"
                        android:textAllCaps="false"
                        android:textSize="12sp" />
                    <Button
                        android:id="@+id/closeData"
                        android:layout_width="wrap_content"
                        android:layout_height="34dp"
                        android:onClick="closePatients"
                        android:text="Close"
                        android:textAllCaps="false"
                        android:textSize="12sp" />
                </LinearLayout>
                <Space
                    android:layout_width="wrap_content"
                    android:layout_height="5dp" />

            </LinearLayout>

        <com.google.android.material.navigation.NavigationView

            android:layout_width="match_parent"
            android:layout_height="match_parent"
            app:menu="@menu/navigation_menu"
            android:layout_gravity="start"
            app:headerLayout="@layout/nav_header"
            android:id="@+id/nv">

        </com.google.android.material.navigation.NavigationView>

    </androidx.drawerlayout.widget.DrawerLayout>

Header file (nav_header.xml)

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@color/colorPrimaryDark">

        <TextView
            android:id="@+id/targetNumber"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Target Number"
            android:textSize="12sp" />
        <Space
            android:layout_width="5dp"
            android:layout_height="wrap_content"
            android:layout_weight="1" />
        <EditText
            android:id="@+id/tarText"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:ems="10"
            android:enabled="true"
            android:inputType="text"
            android:textSize="12sp"
            android:visibility="visible" />
        <Space
            android:layout_width="5dp"
            android:layout_height="wrap_content"
            android:layout_weight="1" />
        <EditText
            android:id="@+id/rollText"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:ems="10"
            android:enabled="true"
            android:inputType="text"
            android:textSize="12sp"
            android:visibility="visible" />
    </LinearLayout>

Menu XML (navigation_menu.xml)

        <?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"
            xmlns:tools="http://schemas.android.com/tools"
            tools:showIn="nv"
            >

            <options android:id="@+id/home"
                android:title="Home"/>
            <options android:id="@+id/team"
                android:title="Team"/>
            <options android:id="@+id/images"
                android:title="Images"/>
            <options android:id="@+id/audit"
                android:title="Audit"/>
            <options android:id="@+id/settings"
                android:title="Settings"/>
          </menu>

Java code

    import androidx.annotation.NonNull;
    import androidx.appcompat.app.ActionBarDrawerToggle;
    import androidx.appcompat.app.AppCompatActivity;
    import androidx.drawerlayout.widget.DrawerLayout;
    import android.app.ActionBar;
    import android.app.LauncherActivity;
    import android.content.Intent;
    import android.os.Bundle;
    import android.os.Handler;
    import android.util.Log;
    import android.view.MenuItem;
    import java.util.ArrayList;
    import java.util.Calendar;
    import java.util.List;
    import com.google.android.material.navigation.NavigationView;

    public class MainActivity extends AppCompatActivity {
        private DrawerLayout D1;
        private ActionBarDrawerToggle t;
        private NavigationView nvs;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            D1=(DrawerLayout) findViewById(R.id.activity_main);
            t=new ActionBarDrawerToggle(this,D1,R.string.Open, R.string.Close);
            D1.addDrawerListener(t);
            t.syncState();
            getSupportActionBar().setDisplayHomeAsUpEnabled(true);
            getSupportActionBar().setHomeButtonEnabled(true);
            final callActivity ca = new callActivity();
            nvs = (NavigationView)findViewById(R.id.nv);
            nvs.inflateMenu(R.menu.navigation_menu);
            nvs.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
                @Override
                public boolean onNavigationItemSelected(@NonNull MenuItem options) {
                    int val = options.getItemId();
                    switch(val)
                    {
                        case R.id.home:
                            ca.showActivity(MainActivity.class, false);
                        case R.id.team:
                            Log.d("Wait","Wait");
                        case R.id.images:
                            ca.showActivity(imageActivity.class, false);
                        case R.id.audit:
                            Log.d("Wait","Wait");
                        case R.id.settings:
                            ca.showActivity(configurationActivity.class, false);
                    }
                    return true;
                }
            });
         }

        @Override
        public boolean onOptionsItemSelected(MenuItem options) {
            if(t.onOptionsItemSelected(options))
            {
                return true;
                }
            return super.onOptionsItemSelected(options);
        }
    }

Upvotes: 1

Views: 1095

Answers (1)

Vince VD
Vince VD

Reputation: 1581

Try using <item> instead of <options>

<?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"
        xmlns:tools="http://schemas.android.com/tools"
        tools:showIn="nv"
        >

        <item android:id="@+id/home"
            android:title="Home"/>
        <item android:id="@+id/team"
            android:title="Team"/>
        <item android:id="@+id/images"
            android:title="Images"/>
        <item android:id="@+id/audit"
            android:title="Audit"/>
        <item android:id="@+id/settings"
            android:title="Settings"/>

</menu>

You can also do it programmatically by removing your menu inflater nvs.inflateMenu and then add this in your menu layout file.

 <com.google.android.material.navigation.NavigationView
        android:id="@+id/nv"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        app:menu="@menu/navigation_menu"
        app:headerLayout="@layout/nav_header"/>

Upvotes: 1

Related Questions