What I tried
Hello Guys,我已经做了一个GridView,我已经填满了我的数据库。现在我做了一个onItemClickListner,来自Google GridView教程。现在我试着让当用户点击GridView中的图片时,它保持选中并获得一个背景色,这样用户就能看到他选择了哪个图片。但实际上,这并没有按照它应该的方式工作。我用一个布尔值做了一个If当用户点击下一个视图时,旧视图再次变得透明新的被点击的视图得到一个背景色。但当我选择了一个视图,然后上下滚动。突出显示的视图有时会改变randomstyle .
所以我的问题是我必须在我的onItemClickListner中改变什么,这个随机的视图改变停止(?),我没有找到这样做的方法。有没有更简单的方法来突出显示选中的视图?为了便于理解,"selected View" =用户点击它,它就被选中了,应该被高亮显示。
这是我的onitemclicklistener的代码:
//Hier wird die Grindview gefüllt
final GridView gridview = (GridView) findViewById(R.id.SmileyGrind);
gridview.setAdapter(new ImageAdapter(this, info));
//Hier wird gemerkt welches bild
gridview.setOnItemClickListener(new OnItemClickListener() {
boolean color = false;
View vv;
public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
Toast.makeText(SFilterConfigActivity.this, "" + position, Toast.LENGTH_SHORT).show();
// gridview.setSelection(position);
if ( color == false){
v.setBackgroundColor(0xFF00FF00);
vv = v;
color = true;
}
else {
vv.setBackgroundColor(0x00000000);
v.setBackgroundColor(0xFF00FF00);
vv = v;
}
}
});
提前感谢您的帮助!
我也有同样的问题,但它是与ListView .follow this它将适用于GridView。
if(position == grid.getSelectedItemPosition())
holder._linear.setBackgroundColor(Color.GRAY);
else
holder._linear.setBackgroundColor(Color.BLACK);
并获得你正在为GridView使用的布局的父布局和布局的onClick方法只需添加这个
holder._linear.setBackgroundColor(Color.GRAY);
这将改变布局的背景颜色,上面的代码将解决你的随机背景问题。