2012-01-02 5 views
0

私は知っている、同様の質問(リストビューをスクロールすると、ListViewの選択された項目がうんざりされています)が質問されています。答えはであり、答えはgetViewではありません。ListViewでButtonのソースを変更する方法は?

私の状況は少し複雑です。私は各ListViewの行にカスタムビューを持っています。このカスタムビューには5つのImageViewがあります。だから私はこれらのImageViewsのonClickイベントを捕捉し、描画可能なイメージを変更します。この場合、この操作をonItemClickに移動する方法はわかりません。何か案は?

答えて

0

このようにします。リストビューで選択した項目の色や背景を変更することができます。 getView()メソッドでこのコードを使用してください。

m_Button.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View arg0) { 
       // TODO Auto-generated method stub 
       indexClick = position; 
       indexClickFlag = true; 
       notifyDataSetChanged(); 
       Log.i("in click--------->", "" + position); 
       Intent i = new Intent(ArtistPlaylistActivity.this, 
         PlayerMainActivity.class); 
       i.putExtra("songnameIndexinPlaylist", position); 
       startActivity(i); 
       ArtistPlaylistActivity.this.finish(); 
      } 
     }); 
     if (indexClickFlag) { 
      if ((indexClick) == (position)) { 
       itemLayout.setBackgroundResource(R.drawable.tab_select); 
       Log.d("System out", "iclick" + indexClick + "pos" 
         + position); 

      } 
     } 

ここで、int indexClick; boolean indexClickFlag = false; itemLayout - >は、変更する背景とm_Buttonのレイアウトです。

あなたに有益です。

0

getChildAt(index)メソッドを使用して、ビューから子を取得できます。イメージビューオブジェクトに

サンプルコード

@Override 
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) { 
    // TODO Auto-generated method stub 
    System.out.println(".....view..."+arg1); 
    LinearLayout ll =(LinearLayout) arg1; 
    ImageView imageView = (ImageView) ll.getChildAt(0); 
    imageView.setImageDrawable(drawable); 
} 
+0

を取得するために、画像ビューのインデックスを置くいいえ、私はListViewコントロールの行に複数のボタンがあります。私は、クリックされたアイテムではなく、クリックされたボタンの背景イメージを変更したいだけです... –

関連する問題