2011-11-24 143 views
0

在我的應用程序中,我擴展了基礎適配器並創建了我自己的適配器。我有不同的行背景圖片取決於他們的位置。點擊「已完成」後,我想更改任何行的顏色,然後在執行onclick後檢索第一個背景顏色。這是我改變背景顏色的onclick方法。更改背景顏色onclick,然後檢索原始顏色android

public void onClick(View v) { 

      if(pos==0) 
      v.setBackgroundResource(R.drawable.stoprow); 
      else if(pos==getCount()-1) 
      v.setBackgroundResource(R.drawable.sbottomrow); 
      else 
       v.setBackgroundResource(R.drawable.smiddlerow); 

      Intent details = new Intent(v.getContext(),HomeworkDetails.class); 
      details.putExtra("date", data.get(pos).getDateOfAdd()); 
      details.putExtra("dueDate", data.get(pos).getDuedate()); 
      details.putExtra("course", data.get(pos).getCourse()); 
      details.putExtra("note", data.get(pos).getNote()); 
      details.putExtra("iconLink", links.get(pos)); 
      v.getContext().startActivity(details); 
     } 
     }); 

現在如何更改onclick()之後的背景顏色?

+0

我不明白,當** **,你想給鑑於其舊的背景?您可以在應用新的背景之前使用getBackground()獲取舊背景,並且可以使列表無效()以使您的自定義適配器重新繪製它。雖然我可能不明白這個問題。 – Joe

回答

0

只需使用內部的選擇器進行繪製即可。使用按下的屬性聲明兩個項目。一個真實的和其他的錯誤。

然後,您可以在適配器中指定可繪製的按鈕。

實例與內選擇繪製對象:

<?xml version="1.0" encoding="utf-8"?><selector xmlns:android="http://schemas.android.com/apk/res/android"> 
<item android:state_pressed="true" android:drawable="@drawable/button_on" /> 
<item android:state_pressed="false" android:drawable="@drawable/button_off" /></selector>