import java.util.HashMap;
import java.util.Map;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Button;
public class MainAdapter extends BaseAdapter {
private LayoutInflater inflater;
//存放两个按钮被选中状态
private Map<Integer, Boolean> map1;
private Map<Integer, Boolean> map2;
private int at = -1;
public MainAdapter(Context context) {
inflater = LayoutInflater.from(context);
map1 = new HashMap<Integer, Boolean>();
map2 = new HashMap<Integer, Boolean>();
for (int i = 0; i < 10; i++) {//默认都未被选中
map1.put(i, false);
map2.put(i, false);
}
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return 10;
}
@Override
public Object getItem(int arg0) {
// TODO Auto-generated method stub
return null;
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
ViewHolder holder;
if (convertView == null) {
convertView = inflater.inflate(R.layout.item, null);
holder = new ViewHolder();
holder.btn1 = (Button) convertView.findViewById(R.id.button1);
holder.btn2 = (Button) convertView.findViewById(R.id.button2);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
holder.btn1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
//点击button1,将button1状态变为true,其他都为0
map1.put(position, true);
map2.put(position, false);
if (at != -1 && at != position) {
map1.put(at, false);
map2.put(at, false);
}
at = position;
MainAdapter.this.notifyDataSetChanged();
}
});
holder.btn2.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
//点击button2,将button2状态变为true,其他都为0
map1.put(position, false);
map2.put(position, true);
if (at != -1 && at != position) {
map1.put(at, false);
map2.put(at, false);
}
at = position;
MainAdapter.this.notifyDataSetChanged();
}
});
if (map1.get(position))
holder.btn1.setText("on");
else
holder.btn1.setText("off");
if (map2.get(position))
holder.btn2.setText("on");
else
holder.btn2.setText("off");
return convertView;
}
class ViewHolder {
private Button btn1;
private Button btn2;
}
}