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



我已经考虑了很长时间,但真的不知道问题出在哪里。第一段代码在我的一项活动中起作用。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 = "";
        }
    });

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

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

Ty DrkStr

相关内容

  • 没有找到相关文章

最新更新