2011-10-06 63 views
2

我試過設置突出 - 視圖的隨機變化而滾動


你好,大家好,我做了我已經充滿了我的數據庫一個GridView。現在我通過Google GridView教程創建了一個onItemClickListner。現在我試圖在用戶點擊GridView中的圖片時進行選擇並獲取背景顏色,以便用戶看到他選擇的圖片。 但確切地說,這不是它應該如何工作。我做了一個If用一個布爾值,當用戶點擊下一個View時,舊的View再次獲得transperent,並且新點擊的View獲得了backgroundcolor。但是在我選擇一個視圖並且我上下滾動之後。突出顯示的視圖更改有時是隨機的。

問題


所以我的問題是我在我的onItemClickListner改變,這個隨機查看改變停止(?),我沒有發現一個方法來做到這一點。有沒有更簡單的方法來突出顯示選定的視圖? 對於理解「選定的視圖」=用戶點擊它,比選定,並應突出顯示。

代碼


這裏是我的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爲你提前幫助!

回答

4

我有同樣的問題,但它與ListView。下面這個它也適用於GridView。

if(position == grid.getSelectedItemPosition()) 
    holder._linear.setBackgroundColor(Color.GRAY);   
else 
    holder._linear.setBackgroundColor(Color.BLACK); 

並獲取您用於GridView的佈局的父佈局,並在onClick佈局方法中添加此項。

holder._linear.setBackgroundColor(Color.GRAY); 

這將改變佈局的背景顏色,上面的代碼將解決您的隨機背景問題。

+0

你好THX爲你快速的答案,所以我如果換成代碼這個'\t(位置== gridview.getSelectedItemPosition()){ \t \t gridview.setBackgroundColor(0xFF00FF00); \t \t \t } \t否則{ \t \t gridview.setBackgroundColor(00000000); '但是它沒有用,我仍然做錯了什麼? Thx爲您提供幫助(+1)! – safari

+0

您應該在ImageAdapter的getView()方法中編寫此代碼,並且您是否在GridView的OnClick上實現了更改背景顏色。 – Sujit

+0

我真的沒有得到如何實現。你可以給我一下,看看你的ImageAdapter和ListView文件。我真的很喜歡這樣做我自己.. – safari

相關問題