android中listView点击对应item并改变button的文字

今天遇到一个问题是在一个listView里面点击对应的itme,并改变对应button的文字和背景图片。
解决方法如下:

设置一个id。当id=o时 设置button的文字和背景颜色,当id=1时,还原。

在listview中进行刷新。
在监听listview中做一个是否点击的判断。
listview.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView parent, View view, int position,
long id) {
// TODO Auto-generated method stub
Info mley = (Info) adapter.getItem(position);
System.out.print(“Textid:”+mley.getText());
if(“0″.equals(mley.getText()))
{
info.get(position).setText(“1″);
//刷新数据
adapter.notifyDataSetChanged();
}

info.get(position).setText(“0″);
adapter.notifyDataSetChanged();
}
}
});
自定义adpter里面重写getView方法。
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
ViewHolder holder = new ViewHolder();
if (convertView == null) {
convertView = LayoutInflater.from(context).inflate(R.layout.meun_adapter,
null);
holder.meun_image = (ImageView) convertView
.findViewById(R.id.meun_image);
holder.meun_name_text = (TextView) convertView
.findViewById(R.id.meun_mc_text);
holder.meun_dj_text = (TextView) convertView
.findViewById(R.id.meun_dj_text);
holder.meun_yd_button = (Button) convertView
.findViewById(R.id.meun_yd_button);
holder.meun_yd_button.setClickable(false);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
les = info.get(position);
holder.meun_name_text.setText((String) les.getName());
holder.meun_dj_text.setText(“价格:”+(String) les.getVersion());
holder.meun_yd_button.setTag(position);
les = info.get(position);
System.out.println(“les.getText():” + les.getText());

if (“0″.equals(les.getText()))
{
holder.meun_yd_button.setText(“已点”);
//holder.yd_button.setText(“已点”+position);
//设置button的背景颜色
holder.meun_yd_button.setBackgroundResource(R.drawable.img2);
} else
{
holder.meun_yd_button.setText(“没点”);
holder.meun_yd_button.setBackgroundResource(R.drawable.img1);
}
return convertView;
}


技术博客地址:http://www.tw918.com/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章