我尝试了什么
Hello Guys,我已经制作了一个GridView,我已经填充了我的数据库。现在我从Google GridView教程中创建了一个onItemClickListner。现在,当用户点击GridView中的图片时,我试图做到这一点,它保持选中并获得backgroundcolor,以便用户看到他选择的图像。 但究竟这不应该如何应用。当用户点击下一个View时,我用一个布尔值做了一个if,那个旧的View再次获得transperent,而新点击的View得到了backgroundcolor。但在我选择了一个视图后,我向上和向下滚动。突出显示的视图有时会随机变化。
问题
所以我的问题是我必须在onItemClickListner中更改,这个随机View更改停止(?),我没有找到一种方法。是否有更简单的方法来突出显示所选的视图? 为了理解“选择的视图”=用户点击它,而不是选中它,应该突出显示。
代码
这是我的onItemClickListner的代码:
//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;
}
}
});
Thx为您提前帮助!
答案 0 :(得分:4)
我有同样的问题,但它与ListView .follow这也适用于GridView。
if(position == grid.getSelectedItemPosition())
holder._linear.setBackgroundColor(Color.GRAY);
else
holder._linear.setBackgroundColor(Color.BLACK);
获取用于GridView的布局的父布局,并在onClick布局方法中添加此布局。
holder._linear.setBackgroundColor(Color.GRAY);
这将更改布局的背景颜色,上面的代码将解决您的随机背景问题。