将所选视图设置为突出显示 - 滚动时随机更改视图

时间:2011-10-06 06:39:50

标签: android gridview view onitemclicklistener setbackground

我尝试了什么


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为您提前帮助!

1 个答案:

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

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