0

Я не могу получить, как добавить раскрывающуюся навигацию в панели действий в студии Android. Я видел http://developer.android.com/guide/topics/ui/actionbar.html#Dropdown и Google для добавления раскрывающейся навигации, но не понимаю. Я новичок в андроид-студии и андроиде.Невозможно добавить раскрывающуюся навигацию в панели действий

Так что, когда я запускаю этот код:

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

    SpinnerAdapter mSpinnerAdapter = ArrayAdapter.createFromResource(this,R.array.activity_array, android.R.layout.simple_spinner_dropdown_item); 

    ActionBar bar = getActionBar(); 
    bar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST); 
    ActionBar.OnNavigationListener listener = new ActionBar.OnNavigationListener() { 
     @Override 
     public boolean onNavigationItemSelected(int itemPosition, long itemId) { 
      return false; 
     } 
    }; 

    bar.setListNavigationCallbacks(mSpinnerAdapter, listener); 
} 

Так проблема есть:

When I run the application, it starts and closes itself within seconds without displaying anything.

drop-down

Когда я комментирую последние две строки, то программа работает, но если я раскомментировать их приложение начинается и закрывается. Также последние два утверждения устарели.

От LogCat я основал:

02-06 12:24:20.809 18210-18210/com.mycompany.dropdown E/AndroidRuntime﹕ FATAL EXCEPTION: main 
    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.mycompany.dropdown/com.mycompany.dropdown.MainActivity}: java.lang.NullPointerException 
      at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2218) 
      at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2268) 
      at android.app.ActivityThread.access$600(ActivityThread.java:148) 
      at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1263) 
      at android.os.Handler.dispatchMessage(Handler.java:99) 
      at android.os.Looper.loop(Looper.java:137) 
      at android.app.ActivityThread.main(ActivityThread.java:5162) 
      at java.lang.reflect.Method.invokeNative(Native Method) 
      at java.lang.reflect.Method.invoke(Method.java:525) 
      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:756) 
      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:572) 
      at miui.dexspy.DexspyInstaller.main(DexspyInstaller.java:171) 
      at dalvik.system.NativeStart.main(Native Method) 
    Caused by: java.lang.NullPointerException 
      at com.mycompany.dropdown.MainActivity.onCreate(MainActivity.java:37) 
      at android.app.Activity.performCreate(Activity.java:5135) 
      at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087) 
      at com.lbe.security.service.core.client.b.x.callActivityOnCreate(Unknown Source) 
      at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2182) 

и больше ошибок ...

ответ

0

Вы должны поместить свой код здесь, чтобы проверить, что происходит, но этот код работал на мой:

SpinnerAdapter mSpinnerAdapter = ArrayAdapter.createFromResource(this, 
      R.array.activity_array, android.R.layout.simple_spinner_dropdown_item); 

    ActionBar bar = getActionBar(); //or getSupportActionBar() depending on your target version 

    bar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST); 
    ActionBar.OnNavigationListener listener = new ActionBar.OnNavigationListener() { 
     @Override 
     public boolean onNavigationItemSelected(int itemPosition, long itemId) { 

      return false; 
     } 
    }; 

    bar.setListNavigationCallbacks(mSpinnerAdapter, listener); 

Чтобы сделать эту работу, вам необходимо позаботиться о используемая библиотека панели действий. Здесь вы можете проверить, какая библиотека вам нужна, и код для ее получения. Он также включает в себя пример раскрывающегося списка навигации: developer.android.com/intl/es/guide/topics/ui/actionbar.html

+0

Я использовал ваш код, но когда я запустил приложение, он запускается и закрывается в течение нескольких секунд автоматически, я редактировал сообщение ... –

+0

Я думаю, что знаю, что Я использовал андроиды андроида, поэтому я не использовал findByView, вы должны включить mDrawerLayout = (DrawerLayout) findViewById (R.id.drawer_layout); mDrawerList = (ListView) findViewById ((R.id.left_drawer)); – Ilenca

+0

Где определены DrawerLayout и ListView, означает, где они заданы id ... –