【发布时间】:2014-11-13 16:14:08
【问题描述】:
我一直在考虑这个问题,但真的无法弄清楚问题所在。第一个代码片段适用于我的一个活动。 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 = "";
}
});
【问题讨论】:
-
“一旦离开方法”是什么意思,你想用 selectedCat 做什么?
-
当我把 bt91.setText(selectedCat);在 onItemSelected 方法中,它显示了 selectedCat 应该包含的文本,但是当我将它放在 } 之后时;或在我的代码中的任何其他地方它不起作用它不显示任何文本。
-
去掉 selectedCat = "";看看会不会有什么不同?
-
不,它仍然不起作用。不过感谢您的快速回复。
-
不知道为什么它不起作用。我刚刚查看了我在我的应用程序中实现的微调器,我只是在 onItemSelected 方法中对所选项目做所有我需要做的事情。
标签: android global-variables spinner onitemselectedlistener