listview 怎么实现item点击后改变该选项的背景颜色或图片
例如:listview有2个选项{item1,item2}(我只是举例 item选项并不确定的)
默认颜色为灰色
当我点击item1后 该项背景颜色变为蓝色 点击item2后 item1颜色变回灰色 item2背景色变为蓝色
谢啦...
------解决方案--------------------
设置点击监听,记下当前点击的是第几个(记为k),紧接着调用adapter.notifydatachanged来刷新list。
在adapter的getview中判断,如果是当前是第k项,则调用convertview.setbackgrouncolor设为蓝色背景,否则设为灰色
------解决方案--------------------
在适配器里面的getView()中设置view.setBackgroundResource(R.color.颜色名称);如果你要选择条件的话,你可以加上自己的条件,例如:if(position % 2 == 0){view.setBackgroundResource(R.color.颜色名称);}else view.setBackgroundResource(R.color.另一种颜色名称);
------解决方案--------------------
package com.ttt;
import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.BaseAdapter;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.TextView;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
public class ListTest extends Activity {
ListView listTest;
List<String> list = new ArrayList<String>();
Map<Integer, Boolean> map = new HashMap<Integer, Boolean>();
ListAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.testlist);
listTest = (ListView) findViewById(R.id.testlist);
adapter = new ListAdapter();
listTest.setAdapter(adapter);
listTest.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int position, long arg3) {
Iterator<Integer> it = map.keySet().iterator();
while(it.hasNext()) {
Integer itr = it.next();
if(itr != position) {
map.put(itr, false);