我似乎不知道如何让 onItemSelectedListender 接口(interface)工作。我想更改所选项目的颜色,然后在取消选择后将其更改回来。我读了一些书,不久前我设法用 onItemSelectedListener 做了类似的事情。
我的代码是
libraryGrid.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
//I want to change the color of the view that was just selected
view.setBackgroundColor(Color.GRAY);
adapterView.getSelectedView().setBackgroundColor(Color.YELLOW);
}
@Override
public void onNothingSelected(AdapterView<?> adapterView) {
//How do I access the view that was just unselected to change it's color?
adapterView.setBackgroundColor(Color.BLACK);
}
});
最佳答案
您跟踪所选项目并通过 getView 方法更改该项目的背景..
这样试试..
libraryGrid.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
mSelectedItem = position;
mAdapter.notifyDataSetChanged();
}
@Override
public void onNothingSelected(AdapterView<?> adapterView) {
}
});
并在您的 getView 方法中设置所选项目的背景颜色。
@Override
public View getView(int position, View convertView, ViewGroup parent) {
final View view = View.inflate(context, R.layout.item_list, null);
if (position == mSelectedItem) {
//set Selected color as background on view
}
else{
//set unSelected color as background on View
}
return view;
}
关于android - 如何使用 onItemSelectedListener 改变 View 的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27074122/