お世話になります。
色々と試行錯誤してみましたが、下記のエラーの解消方法がわかりません。
お手数ですが、ご教示のほどよろしくお願い致します。
java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.Spinner.setAdapter(android.widget.SpinnerAdapter)' on a null object reference
実現したいこと
ナビゲーションドロワーのアイテムを一か所スピナーにしたい。
参考元
実行時エラーログ
E/AndroidRuntime: FATAL EXCEPTION: main Process: com.example.test, PID: 12890 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.test/com.example.test.ui.login.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.Spinner.setAdapter(android.widget.SpinnerAdapter)' on a null object reference at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3430) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3614) at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:86) at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108) at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2199) at android.os.Handler.dispatchMessage(Handler.java:112) at android.os.Looper.loop(Looper.java:216) at android.app.ActivityThread.main(ActivityThread.java:7625) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:524) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:987) Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.Spinner.setAdapter(android.widget.SpinnerAdapter)' on a null object reference at com.example.test.ui.login.MainActivity.onCreate(MainActivity.java:88) at android.app.Activity.performCreate(Activity.java:7458) at android.app.Activity.performCreate(Activity.java:7448) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1286) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3409) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3614) at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:86) at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108) at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2199) at android.os.Handler.dispatchMessage(Handler.java:112) at android.os.Looper.loop(Looper.java:216) at android.app.ActivityThread.main(ActivityThread.java:7625) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:524) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:987)
ソースコード
MainActivity.java
java
1@Override 2 protected void onCreate(Bundle savedInstanceState) { 3 super.onCreate(savedInstanceState); 4 setContentView(R.layout.activity_main); 5 6 // Navigation Drawer 7 Toolbar toolbar = findViewById(R.id.toolbar); 8 toolbar.setTitle(""); 9 setSupportActionBar(toolbar); 10 //toolbar.setBackgroundColor(0); 11 12 drawer = findViewById(R.id.drawer_layout); 13 14 ActionBarDrawerToggle actionBarDrawerToggle = 15 new ActionBarDrawerToggle( 16 this, drawer, toolbar, R.string.action_sign_in, R.string.action_regist); 17 drawer.addDrawerListener(actionBarDrawerToggle); 18 actionBarDrawerToggle.syncState(); 19 20 NavigationView navigationView = findViewById(R.id.nav_view); 21 navigationView.setNavigationItemSelectedListener(this); 22 23 Spinner sp = (Spinner) navigationView.getMenu().findItem(R.id.nav_ccc).getActionView(); 24 names = getResources().getStringArray(R.array.labels_array_ccc); 25 sp.setAdapter(new ArrayAdapter<String>(this,R.layout.spinner_dropdown_item,names)); 26 sp.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 27 @Override 28 public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) { 29 30 } 31 32 @Override 33 public void onNothingSelected(AdapterView<?> adapterView) { 34 35 } 36 }); 37 38 39 ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(this, drawer, toolbar, 40 R.string.navigation_drawer_open, R.string.navigation_drawer_close); 41 drawer.addDrawerListener(toggle); 42 toggle.syncState(); 43 44 getSupportActionBar().setHomeButtonEnabled(true); 45 getSupportActionBar().setDisplayHomeAsUpEnabled(true); 46 getSupportActionBar().setHomeAsUpIndicator(R.drawable.ic_menu_black_24dp); 47 48 // TabLayout 49 OriginalFragmentPagerAdapter adapter = new OriginalFragmentPagerAdapter(getSupportFragmentManager()); 50 viewPager = findViewById(R.id.viewPager); 51 viewPager.setOffscreenPageLimit(2); 52 viewPager.setAdapter(adapter); 53 tabLayout = findViewById(R.id.tabLayout); 54 tabLayout.setupWithViewPager(viewPager); 55 56 createTabIcons(); 57 58 }
activity_main.xml
//一部抜粋 <com.google.android.material.navigation.NavigationView android:id="@+id/nav_view" android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_gravity="start" android:background="@color/colorWhite" app:headerLayout="@layout/nav_header" app:menu="@menu/drawer_menu" app:theme="@style/AppTheme.drawer_style"/>
drawer_menu.xml
<menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" tools:showIn="navigation"> <group android:checkableBehavior="single"> <item android:id="@+id/nav_aaa" android:icon="@drawable/ic_person_black_24dp" android:title="@string/drawer_menu_1" /> <item android:id="@+id/nav_bbb" android:icon="@drawable/ic_person_black_24dp" android:title="@string/drawer_menu_2" /> <item android:id="@+id/nav_ccc" android:icon="@drawable/ic_person_black_24dp" android:title="@string/drawer_menu_3" android:actionLayout="@layout/spinner_ccc"/> </group> </menu>
spinner_ccc.xml
<?xml version="1.0" encoding="utf-8"?> <Spinner xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/spinner_ccc_drawer" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_gravity="center_vertical" android:gravity="center_vertical" />
回答1件
あなたの回答
tips
プレビュー