public
class
ListBackground
extends
Activity {
private
List<String> dataList =
new
ArrayList<String>();
private
ListView lv;
private
int
clickPosition = -
1
;
@Override
public
void
onCreate(Bundle savedInstanceState) {
super
.onCreate(savedInstanceState);
setContentView(R.layout.activity_list_background);
for
(
char
tempChar =
'a'
; tempChar <=
'z'
; tempChar++){
dataList.add(String.valueOf(tempChar));
}
lv = (ListView)findViewById(R.id.listView1);
final
MyAdapter ma =
new
MyAdapter();
lv.setAdapter(ma);
lv.setOnItemClickListener(
new
OnItemClickListener() {
@Override
public
void
onItemClick(AdapterView<?> parent, View view,
int
position,
long
id) {
if
(position != clickPosition){
clickPosition = position;
}
else
{
clickPosition = -
1
;
}
ma.notifyDataSetChanged();
}
});
}
@Override
public
boolean
onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_list_background, menu);
return
true
;
}
private
class
MyAdapter
extends
BaseAdapter{
@Override
public
int
getCount() {
return
dataList.size();
}
@Override
public
Object getItem(
int
position) {
return
dataList.get(position);
}
@Override
public
long
getItemId(
int
position) {
return
position;
}
@Override
public
View getView(
int
position, View convertView, ViewGroup parent) {
TextView tv =
new
TextView(ListBackground.
this
);
tv.setText(dataList.get(position));
tv.setBackgroundColor(Color.WHITE);
if
(position == clickPosition){
tv.setBackgroundColor(Color.BLACK);
}
return
tv;
}
}
}