0

おそらくこれは次のような重複した質問です: Android: Sherlock action bar drop down , but the answer did not resolve my problem

次のようなカスタムの初期ビューを使用して、シャーロック アクションバーにドロップダウン メニューを実装したいと考えています。 ここに画像の説明を入力

コードは希望どおりにリストを正常に作成できますが、アイテムをクリックすると、「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」が呼び出されたときに 1 回だけ表示されます。その後、リスト項目をクリックしてもログは表示されません。

誰かが私の問題を解決できることを願っています

4

1 に答える 1

0

問題は、リストにアイテムが 1 つしかないためです。リストの作成時にこのアイテムが 1 つだけ選択され、選択されたアイテムをクリックしても onNavigationItemSelected が応答しないと思います。

リストに別の項目を追加すると、問題は解決しました。

于 2013-10-19T07:52:50.463 に答える