自定义适配器:
// 自定义适配器
private class MyAdapter extends BaseAdapter {
private Context context;
private List<String> data;
private LayoutInflater layoutInflater;
public MyAdapter(Context context, ArrayList<String> data) {
this.context = context;
this.data = data;
layoutInflater = LayoutInflater.from(this.context);
}
@Override
public int getCount() {
return data.size();
}
@Override
public Object getItem(int position) {
return data.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(final int position, View convertView,
ViewGroup parent) {
if (convertView == null) {
convertView = layoutInflater.inflate(R.layout.reportquery_item,
null);
}
final TextView item_view = (TextView) convertView
.findViewById(R.id.report_item);
item_view.setTag(position + 1); // position从0开始
item_view.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
int i = (Integer) v.getTag();
if (iSelected == i)
return;
iSelected = i;
txtViewTitle.setText(data.get(i - 1));
System.out.print("left_list:" + data.get(i - 1) + "-"
+ v.getTag());
// 查询按钮添加事件
searchFilter_btn.setTag(v.getTag());
searchFilter_btn
.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// 查询按钮触发事件
if (v.equals(searchFilter_btn)) {
System.out
.print("searchFilter_btn_click:"
+ v.getTag());
Message m = mHandler.obtainMessage(0,
v.getTag());
mHandler.sendMessage(m);// 发送消息:系统会自动调用handleMessage方法来处理消息
}
}
});
Message m = mHandler.obtainMessage(1, v.getTag());
mHandler.sendMessage(m);// 发送消息:系统会自动调用handleMessage方法来处理消息
myAdapter.notifyDataSetInvalidated();
}
});
item_view.setText(data.get(position));
LinearLayout buttonLayout = (LinearLayout) convertView
.findViewById(R.id.reportquery_button);
if ((iSelected - 1) == position) {
// 设置选中时的背景颜色和字体颜色
buttonLayout.setBackgroundDrawable(getResources().getDrawable(
R.drawable.selected_bg));
item_view.setTextColor(Color.WHITE) ;
} else {
buttonLayout.setBackgroundColor(Color.TRANSPARENT);
item_view.setTextColor(Color.parseColor("#996633")) ;
}
return convertView;
}
}