Spinner onItemSelected中的全局变量不起作用

时间:2014-11-13 16:14:09

标签: android global-variables spinner onitemselectedlistener

我一直在思考这个问题,但真的无法弄清问题是什么。第一个代码段在我的一个活动中起作用。 selectedUser是全局声明,我可以在任何地方使用它。

        spUsers.setAdapter(new MyAdapter(this, R.layout.user_sp_row,userArray));
    spUsers.setOnItemSelectedListener(new OnItemSelectedListener() {
        @Override
        public void onItemSelected(AdapterView<?> parentView, View selectedItemView, int position, long id) {
            int index = spUsers.getSelectedItemPosition();
            selectedUser = userList.get(index).get(Constants.TAG_UNAME);
        }

        @Override
        public void onNothingSelected(AdapterView<?> parentView) {
            selectedUser = "";
        }

    });

这段代码不起作用,虽然看起来和我写的其他代码一样。 selectedCat也是全局声明的。问题是在onItemSelected方法中设置了值,但是一旦离开方法,selectedCat就是一个空字符串。

        spCat.setAdapter(new MyAdapter(this, R.layout.category_sp_row,tempArray));
    spCat.setOnItemSelectedListener(new OnItemSelectedListener() {
        @Override
        public void onItemSelected(AdapterView<?> parentView, View selectedItemView, int position, long id) {
            int index = spCat.getSelectedItemPosition();
            selectedCat = categoryList.get(index).get(Constants.TAG_UPID);
        }

        @Override
        public void onNothingSelected(AdapterView<?> parentView) {
            selectedCat = "";
        }

    });

2 个答案:

答案 0 :(得分:0)

当您可以使用int index = spUsers.getSelectedItemPosition();方法中提供的位置整数时,我不知道为什么使用onItemSelected()来获取索引。

答案 1 :(得分:0)

我确实通过在setOnItemSelectedListener()中完成所有需要完成的工作来实现这一点。

Ty DrkStr