1
我想創建一個列表視圖,在點擊一個項目時背景會改變顏色。到目前爲止,我的當前實現導致「背對背」可見單元格的背景發生了變化。例如,如果我選擇列表中的頂部項目,則底部項目會突出顯示。任何人都可以幫助我實現所需的功能?有誰知道如何突出顯示Android ListView中的選定項目?
我的目錄活動:
public void onCreate(Bundle savedInstanceState) {
Log.e(TAG, "Starting Symptom Activity...");
super.onCreate(savedInstanceState);
setContentView(R.layout.symptom_listview);
// Setup list
this.setupSymptomScreen();
startManagingCursor(cs);
//get handle on buttons
Button nextButton = (Button) findViewById(R.id.symptom_next);
Button backButton = (Button) findViewById(R.id.symptom_goBack);
ListView lv =getListView();
lv.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
lv.setItemsCanFocus(false);
SymptomAdapter adapter = new SymptomAdapter(this,
R.layout.symptom_item, cs, new String[] { DbAdapter.KEY_SYMPTOM },
new int[] { R.id.txt_symptom });
selectedItems = new HashSet<String>();
adapter.setLookupTable(selectedItems);
setListAdapter(adapter);
lv.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
if(!selectedItems.contains(view.toString()))
{
view.setBackgroundColor(Color.CYAN);
String symptom = ((TextView) view.findViewById(R.id.txt_symptom)).getText().toString();
selectedItems.add(symptom);
}
else
{
view.setBackgroundColor(Color.WHITE);
selectedItems.remove(view.toString());
}
}
});
nextButton.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
// import selected items into a list
importSelected();
// figure out category
process();
}
});
//List for symptom ids
symptoms_id = new ArrayList<Integer>(cs.getCount());
}
而且我也有我的自己的適配器中,我已重寫getView
public View getView(int position, View convertView, ViewGroup parent) {
if(convertView != null){
String symptoms = ((TextView) convertView.findViewById(R.id.txt_symptom)).getText().toString();
if(!selectedItems.contains(symptoms))
convertView.setBackgroundColor(Color.WHITE);
}
return super.getView(position, convertView, parent);
}
需要在「if(position == mItemIndex)」之後有一個else-block來重置你的顏色。 SimpleAdapter可以在別處再次使用相同的視圖(convertView) – tofi9