设置选中的视图高亮显示-滚动时随机更改视图



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); 

这将改变布局的背景颜色,上面的代码将解决你的随机背景问题。

最新更新