0

我在使用OnItemClickListener而不是OnTouchListener單擊時無法更改GridView圖像項目資源。我想使用OnItemClickListener的主要原因是我可以獲得點擊項目的position。一旦我有position,我用它來確定要更改哪個圖像。當我按下某個項目時,我想將其圖像資源更改爲image2,未按下時將其更改回image1如何使用OnItemClickListener更改GridView圖像項目資源?

這很容易使用OnTouchListener但是我無法獲得所選GridView項目的position

+0

見我的答案,並嘗試 – Goofy

回答

1

試試這個:

gridView.setOnTouchListener(new OnTouchListener() { 
      public boolean onTouch(View v, MotionEvent me) { 

       int action = me.getActionMasked(); // MotionEvent types such as ACTION_UP, ACTION_DOWN 
       float currentXPosition = me.getX(); 
       float currentYPosition = me.getY(); 
       int position = gridView.pointToPosition((int) currentXPosition, (int) currentYPosition); 

       // Access text in the cell, or the object itself 
       String s = (String) gridView.getItemAtPosition(position); 
       TextView tv = (TextView) gridView.getChildAt(position); 
     } 
    } 
+0

這是偉大的,但現在我的問題是,我想改變ImageView的資源,但是當我用'ImageView的IV =(ImageView的)GridView控件。 getChildAt(position);'由於觸及的'Child'是父'LinearLayout'而不是它的子'ImageView',所以出現了ClassCastException。在這種情況下,我如何獲得孩子的ImageView? –

相關問題