MainActivity.java
@Override
public void onCreate(Bundle savedInstanceState) {
listAdapter = new ListAdapter(getApplicationContext(), listview, listData);
listview.setAdapter(listAdapter);
}
listview.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
// TODO Auto-generated method stub
listAdapter.setSelectItem(position);
listAdapter.notifyDataSetInvalidated();
TextView c = (TextView) view.findViewById(R.id.blt_mac);
macAddress = c.getText().toString();
Log.i("huzh", macAddress);
}
});
ListAdapter.java
public class ListAdapter extends BaseAdapter {
private ListView listView;
private LayoutInflater inflater;
private Context context;
private List<HashMap<String, String>> listData;
private int selectItem = -1;
public ListAdapter(Context context, ListView listView, List<HashMap<String, String>> listData) {
super();
inflater = (LayoutInflater) context.getSystemService(context.LAYOUT_INFLATER_SERVICE);
this.listView = listView;
this.context = context;
this.listData = listData;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return listData.size();
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return listData.get(position);
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
Holder mHolder = null;
if (convertView == null) {
convertView = inflater.inflate(R.layout.list_item, null);
mHolder = new Holder();
mHolder.name_view = (TextView) convertView.findViewById(R.id.blt_name);
mHolder.mac_view = (TextView) convertView.findViewById(R.id.blt_mac);
convertView.setTag(mHolder);
} else {
mHolder = (Holder) convertView.getTag();
}
HashMap<String, String> hsMap = (HashMap<String, String>) getItem(position);
mHolder.name_view.setText(hsMap.get("name"));
mHolder.mac_view.setText(hsMap.get("mac"));
if (position == selectItem) {
convertView.setBackgroundColor(Color.rgb(230, 230, 230));
} else {
convertView.setBackgroundColor(Color.TRANSPARENT);
}
return convertView;
}
class Holder {
TextView name_view;
TextView mac_view;
}
public void setSelectItem(int selectItem) {
this.selectItem = selectItem;
}
}