2012-12-07 4 views

답변

3

좋아, 내가 navigationlist 사용하는 대신 수동으로 menu.xml에 스피너를 추가하여 이런 짓을했는지 :

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

    <string-array name="dashboardItemList"> 
     <item>Dashboard</item> 
     <item>Downloads</item> 
     <item>Revenues</item> 
     <item>Ads</item> 
     <item>Rankings</item> 
     <item>Reviews</item> 
     <item>Events</item> 
    </string-array> 
</resources> 

: 항목 목록에 필요

1.로 array.xml에 정의해야합니다 createMenuOption에에서 2. 전화 navigationList 방법

@Override

public boolean onCreateOptionsMenu(Menu menu) { 
    getSupportMenuInflater().inflate(R.menu.main_menu, menu); 
    setNavigationList(); 
    return super.onCreateOptionsMenu(menu); 
} 

3. NavigationMethod를 정의하고 array.xml에서 문자열 배열을 가져옵니다. NavigationMode에 대한 레이아웃 sherlock_spinner_dropdown_item에 내장되어 있습니다.

public void setNavigationList() { 
       arrayItemsForDropdown = getResources().getStringArray(R.array.dashboardItemList); 
       Context context = getSupportActionBar().getThemedContext(); 
       ArrayAdapter<CharSequence> list = ArrayAdapter.createFromResource(context,R.array.dashboardItemList,    R.layout.sherlock_spinner_item); 
       list.setDropDownViewResource(R.layout.sherlock_spinner_dropdown_item); 
       getSupportActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_LIST); 
       getSupportActionBar().setListNavigationCallbacks(list, this); 
} 

** 4. 이제 ActionBarSherlock의에서 왼쪽으로 onNavigationItemSelected 방법 **

@Override 

public boolean onNavigationItemSelected(int itemPosition, long itemId) { 

    if (arrayItemsForDropdown[itemPosition].equals("Dashboard")) { 
     downloadIcon.setVisible(false); 
     DashboardFragment dashboardFragment = new DashboardFragment(); 
     showFragment(R.id.fragmentContainer, dashboardFragment, "dashboard"); 
     overridePendingTransition(R.anim.right_in, R.anim.right_out); 

    } else if (arrayItemsForDropdown[itemPosition].equals("Downloads")) { 
     Log.d("Spinner", "downloadClicked"); 
     showProgressDialog(); 
     new Thread(new Runnable() { 
      public void run() { 
       checkDownloadsData(); 
      } 
     }).start(); 


    } 
       // skipping further else parts..... 

    return true; 
} 

:) 그리고 navigationlist bydefault 정렬에 당신의 선택에 따라 구현을 제공합니다. 스냅 샷을 확인하십시오.

enter image description here

관련 문제