2011-11-24 93 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>