相关疑难解决方法(0)

Spinner:当选定项保持不变时,不会调用onItemSelected

我有一个OnItemSelectedListenerfor my Spinner,但是当所选项目与前一个项目相同时,它不会被调用.显然,OnClickListener这不是一个选项Spinner.每次用户点击某个项目时我都需要抓住.任何的想法?

也许这SpinnerActionBar扰乱正常行为的事实?

@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
    inflater.inflate(R.menu.tracklist_menu, menu);
    Spinner spinner = (Spinner) menu.findItem(R.id.option_ordering_spinner)
            .getActionView();
    spinner.setAdapter(mSpinnerAdapter);
    spinner.setSelection(PrefsHelper.getOrderingSpinnerPos(prefs));
    spinner.setOnItemSelectedListener(new OnItemSelectedListener() {

        @Override
        public void onItemSelected(AdapterView<?> parent, View view,
                int position, long id) {
            String str = "selected";
            System.out.println(str);
            if (optionMenuInitialized) {

                switch (position) {
                case 0:
                    // rdm
                    getActivity()
                            .sendBroadcast(
                                    new Intent(
                                            MyIntentAction.DO_RESHUFFLE_PLAYLIST));
                    smp.setCurrentTracklistCursorPos(-1);
                    trackAdapter.notifyDataSetChanged();
                    break;
                case 1:
                    // artist
                    getActivity()
                            .sendBroadcast(
                                    new Intent(
                                            MyIntentAction.DO_ORDER_PLAYLIST_BY_ARTIST)); …
Run Code Online (Sandbox Code Playgroud)

android listener spinner actionbarsherlock android-actionbar

45
推荐指数
6
解决办法
3万
查看次数

Android Spinner数据视图未在重新选择的项目上更新

我正在尝试将Spinner自定义为多选.我已经成功地使它可以多选,但是当重新选择一个项时,微调器内部的视图不会更新.

问题

当一个项目重新被选中时Spinner,getView()我的SpinnerAdapter被调用产生了View我想要它的东西,但是View不知怎的,它不会被显示出来.我已经完成了调试器中的所有操作,并且在选择不同的项目或重新选择相同的项目时,我找不到任何差异.我已经浏览了所有的代码Spinner AbsSpinner,AdapterView而且我找不到可能导致这种情况的原因.

例如

微调器有6个项目:选择1-6.微调器起源于未选中的所有项目. 选择选项1,2和4.微调器内的视图正确显示"选择1,选择2,选择4".

选择4未被选中(就Spinner而言,重选).从列表中正确取消选中选项4,但微调器内的视图不会更新. 它仍然显示"选择1,选择2,选择4".单步执行调试器,我的SpinnerAdapter上的getView()会被调用.出于某种原因,View实际上并未显示.

选择2未被选中(这不是对Spinner的"重新选择").这里的一切都按预期运作.列表项和Spinner内的视图都会更新.

一些代码

多选Spinner

public class MultiSelectSpinner extends Spinner {

    private OnItemSelectedListener listener;

    public MultiSelectSpinner(Context context) {

        super( context );
    }

    public MultiSelectSpinner(Context context, AttributeSet attrs) {

        super( context, attrs );
    }

    public MultiSelectSpinner(Context context, AttributeSet attrs, int defStyle) {

        super( context, attrs, defStyle );
    }

    @Override
    public void setSelection( int position ) { …
Run Code Online (Sandbox Code Playgroud)

android android-spinner

6
推荐指数
1
解决办法
4079
查看次数