利用itemview,fire,line来保存点击的状态
private View itemview;
private ImageView fire, line;
意思是,1.前两行带火的图片,其他的没有,
2.点击一行,哪行的背景变色,右边按钮也改变颜色,其他的不变,点击另一行,开始那行还原原来的颜色
final LinearLayout forum_backs = (LinearLayout) convertView
.findViewById(R.id.forum_backs);
ImageView forum_fire = (ImageView) convertView
.findViewById(R.id.forum_fire);
final ImageView forum_image = (ImageView) convertView
.findViewById(R.id.forum_image);
if (index == 0 || index == 1) {
forum_fire.setVisibility(View.VISIBLE);
}else{
forum_fire.setVisibility(View.INVISIBLE);
}
forum_backs.setOnClickListener(new OnClickListener() {
public void onClick(View view) {
Toast.makeText(ForumActivity.this, "第" + index + "行",
Toast.LENGTH_SHORT).show();
if (itemview == null) {
itemview = view;
// fire = forum_fire;
line = forum_image;
}
if (itemview != view) {
view.setBackgroundColor(Color.WHITE);
}
itemview.setBackgroundColor(android.R.color.transparent);
view.setBackgroundResource(R.color.backs_forum);
line.setImageResource(R.drawable.forum_label);
forum_image.setImageResource(R.drawable.forum_label1);
itemview = view;
// fire = forum_fire;
line = forum_image;
Intent intent = new Intent(ForumActivity.this,
ThreadListActivity.class);
startActivity(intent);
}
});
这种方法在android中一般很少遇到
有的时候遇到ListView拖动到下面,然后再返回去,之前item的状态改变原来的了,如果想记住状态,那么就设置一下状态就行了,比如ListView背景,点击的时候,背景变了,如果想记住这个状态,那么就在点击之前先判断下,比如:
int item =0;
final ImageView imageView = (ImageView) layout
.findViewById(R.id.score_choise);
imageView.setImageResource(R.drawable.pressed);
if (item == 1) {
imageView.setImageResource(R.drawable.selected);
}
LinearLayout ly = (LinearLayout) layout.findViewById(R.id.backs);
ly.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
if (item == 0) {
imageView.setImageResource(R.drawable.selected);
mID.addElement(mId);
item = 1;
} else {
imageView.setImageResource(R.drawable.pressed);
mID.remove(mId);
item = 0;
}
System.out.println(mID + "**");
}
});
这样就OK 了