Хорошо, найдите приведенный ниже код для примера деятельности.
public class SampleActivity extends Activity {
private String[] arrItems={"A", "B", "C", "D", "E"};
private boolean[] arrState={false, false, false, false, false};
private ListView lv;
private ArrAdapter adapter;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
lv=(ListView) findViewById(R.id.listItems);
adapter=new ArrAdapter(this);
lv.setAdapter(adapter);
lv.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int position,
long id) {
// TODO Auto-generated method stub
arrState[position]=!arrState[position];
adapter.notifyDataSetChanged();
}
});
}
private class ArrAdapter extends ArrayAdapter<String>
{
Context mContext=null;
public ArrAdapter(Context context) {
super(context, R.layout.row);
// TODO Auto-generated constructor stub
mContext=context;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return arrItems.length;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
View vi=convertView;
ViewHolder holder=null;
if(vi==null)
{
vi=LayoutInflater.from(mContext).inflate(R.layout.row, parent, false);
holder=new ViewHolder();
holder.mTxt=(TextView) vi.findViewById(R.id.lbl);
vi.setTag(holder);
}
else
holder=(ViewHolder) vi.getTag();
holder.mTxt.setText(arrItems[position]);
if(arrState[position])
vi.setBackgroundColor(Color.BLUE);
else
vi.setBackgroundColor(Color.WHITE);
return super.getView(position, convertView, parent);
}
private class ViewHolder
{
TextView mTxt=null;
}
}
private void clear()
{
Arrays.fill(arrState, false);
adapter.notifyDataSetChanged();
}