我一直在思考这个问题,但真的无法弄清问题是什么。第一个代码段在我的一个活动中起作用。 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 = "";
}
});
答案 0 :(得分:0)
当您可以使用int index = spUsers.getSelectedItemPosition();
方法中提供的位置整数时,我不知道为什么使用onItemSelected()
来获取索引。
答案 1 :(得分:0)
我确实通过在setOnItemSelectedListener()中完成所有需要完成的工作来实现这一点。
Ty DrkStr