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

时间:2016-02-13 16:11:35

标签: android listview spinner

在我整天,我都在研究这个问题。

我有一个微调器和可扩展的列表视图。我的孩子视图首先有两个按钮。一个是“接受”,另一个是“拒绝”。我的旋转器有4种选择。首先是“等待请求”第二个是“接受请求”第三个是“拒绝请求”第四个是“所有请求”

我希望在我的程序首次启动时看到“等待请求”。 当我接受或拒绝时,我希望我的微调器动态变化。 (编辑:我想更新我的数据集而不是更改我的微调器。为此我需要刷新我的微调器。并且在使用微调器过滤我的数据后调用了adapter.notifydatasetchanged。我使用微调器根据记录(listview元素)类别过滤我的数据。) 对于动态更改,我首先使用了setSelection(position,true)代码。但这不起作用。所以我使用了setSelection(0,true);为setSelection(位置,TRUE); 我之所以使用两次的原因是因为如果旋转器已经被相同位置选中,则不会更新。所以首先我用这个代码将我的位置设置为0。 使用此代码设置实际所需位置后,“setSelection(0,true)”。 “setSelection(position,true)”

有了这两个代码,我知道我的微调器是动态的但是!属于我的listview子项的我的按钮不再有效。我无法点击我的按钮。

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

这是我的微调代码:

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();
        }
    });

提前致谢..

1 个答案:

答案 0 :(得分:0)

是的我解决了我的问题。我无法解决setselection问题,但不是那样,我决定从另一个方向走。我没有使用setselection方法。我只是在我的接受和拒绝按钮的onclick方法中添加我的过滤方法。这解决了这个问题。