Spinner setselection 禁用我的按钮的 onclick 方法

Spinner setselection disables my buttons' onclick method

我一整天都在处理这个问题。

我有一个微调器和可扩展列表视图。我的子视图首先有两个按钮。一个是 "Accept" 另一个是 "Decline"。我的微调器有 4 个选择。第一个是"Waiting requests" 第二个是"Accepted requests" 第三个是"Declined requests" 第四个是"All requests"

我想在我的程序第一次启动时看到 "Waiting requests"。 当我接受或拒绝时,我希望我的微调器动态变化。 (编辑:我想更新我的数据集而不是改变我的微调器。为此我需要刷新我的微调器。我在用微调器过滤我的数据后调用了 adapter.notifydatasetchanged。我使用微调器根据记录过滤我的数据(列表视图元素) 类别。) 对于动态变化,我首先使用了 setSelection(position,true) 代码。但这行不通。所以我使用了 setSelection(0,true);设置选择(位置,真); 我使用两次的原因是因为微调器在已被同一位置选中时不会更新。所以首先我用这段代码将我的位置设置为 0。 "setSelection(0,true)" 在我用这段代码设置了我实际想要的位置之后。 "setSelection(position,true)"

通过这两个代码,我实现了我的微调器是动态的但是!!!属于我的列表视图子项的我的按钮不再处于活动状态。我无法点击我的按钮。

我使用线程 运行 那两个代码段,但线程也无法解决我的问题。我开始认为这是一个错误问题。所以我想问一下Whosebug。我在等什么主意?

这是我的微调器代码:

spinner.setAdapter(spinnerAdapter); listview.setAdapter(适配器);

    spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
        @Override
        public void onItemSelected(AdapterView<?> parent, View view, final int position, long id) {
            if (oldposition == position)
            {

                if(position!=0) {

                  spinner.setSelection(0, false);
                  spinner.setSelection(position, false);
                }
                else
                {
                    spinner.setSelection(1, false);
                    spinner.setSelection(position, false);
                }

            }

            oldposition = position;

            parentsFiltered.clear();
            if (parent.getItemAtPosition(position).equals("Tümü")) {
                parentsFiltered.addAll(yedek);
                parents.clear();
                parents.addAll(parentsFiltered);

            } else if (parent.getItemAtPosition(position).equals("Onaylananlar")) {
                filter(1);

            } else if (parent.getItemAtPosition(position).equals("Reddedilenler")) {
                filter(2);

            } else if (parent.getItemAtPosition(position).equals("Bekleyenler")) {
                filter(0);

            }
            dateFilter();
        }

        @Override
        public void onNothingSelected(AdapterView<?> parent) {

            parentsFiltered.clear();
            parentsFiltered.addAll(yedek);
            parents.clear();
            parents.addAll(parentsFiltered);
            adapter.notifyDataSetChanged();
            adapter.notifyDataSetInvalidated();
        }
    });

提前致谢..

是的,我解决了我的问题。我无法解决 setselection 问题,但我决定换一种方式,而不是那样。我没有使用 setselection 方法。我只是在接受和拒绝按钮的 onclick 方法中也添加了我的过滤方法。那解决了问题。