2013-10-19 104 views
0

也許這就像一個重複的問題:Android: Sherlock action bar drop down,但得到的答覆並沒有解決我的問題安卓:福爾摩斯操作欄下拉菜單,自定義視圖

我想實現一個下拉菜單福爾摩斯動作條帶像這樣的自定義初始視圖: enter image description here

我的代碼可以成功創建爲我想要的,但是當我點擊該項目時,「onNavigationItemSelected」功能並沒有收到任何

我的代碼清單:

public void someFunction(){    
    getSupportActionBar().setDisplayHomeAsUpEnabled(true); 
    getSupportActionBar().setIcon(R.drawable.edit_done); 
    getSupportActionBar().setNavigationMode(com.actionbarsherlock.app.ActionBar.NAVIGATION_MODE_LIST); 
    final String[] choices = {"Select all"}; 
    CustomSpinnerAdapter spinnerAdapter = new CustomSpinnerAdapter(MainActivity.getInstance(), android.R.layout.simple_spinner_dropdown_item, choices); 
    getSupportActionBar().setListNavigationCallbacks(spinnerAdapter, this); 
    spinnerAdapter.setDropDownViewResource(R.layout.sherlock_spinner_dropdown_item); 
} 
@Override 
public boolean onNavigationItemSelected(int itemPosition, long itemId) { 
    Log.d("OUTPUT", "selected menu position:" + itemPosition); 

    return true; 
} 


private class CustomSpinnerAdapter extends ArrayAdapter<String> implements SpinnerAdapter { 
    private LayoutInflater layoutInflater; 

    public CustomSpinnerAdapter(Context context, int textViewResourceId, String[] values) { 
     super(context, textViewResourceId, values); 
     this.layoutInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    } 

    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
     return imageview1; 
    } 

    @Override 
    public View getDropDownView(int position, View convertView, 
      ViewGroup parent) { 
     convertView = layoutInflater.inflate(R.layout.sherlock_spinner_dropdown_item, parent, false); 
     ((TextView)convertView).setText("Select all"); 
     return convertView; 
    } 

} 

,你可以看到,在日誌中「onNavigationItemSelected」只出現一次當「somefunction」之稱,在這之後,你不會看到任何日誌,當您點擊列表中的項目

希望有人能解決我的問題

回答

0

問題是因爲我只有一個項目在我的列表中,這隻有一個項目被選中時,列表創建和onNavigationItemSelected不會響應當你點擊已被選中的項目,我猜。

我在列表中添加了另一項,並解決了問題。