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/

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