1.重写SimpleAdapter的getView方法
public class mSimpleAdapter extends SimpleAdapter {
private Context context;
private int resource;
public mSimpleAdapter(Context context, List<? extends Map<String, ?>> data, int resource, String[] from, int[] to) {
    super(context, data, resource, from, to);
    this.context = context;
    this.resource = resource;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
    if(convertView==null){
        convertView= LayoutInflater.from(context).inflate(resource,parent,false);
    }
    TextView textView = convertView.findViewById(R.id.listView_item_1);
    if(!BaseActivity.codeFlags[position]){
        textView.setTextColor(Color.argb(0xff,0xaa,0xaa,0xaa));
    }else{
        textView.setTextColor(Color.argb(0xff,0xff,0xff,0xff));
    }

    return super.getView(position,convertView,parent);
}
2.点击事件改变样式
    listView = findViewById(R.id.listView);
    List<HashMap<String,String>> list = new ArrayList<>();
    for(int i=0;i<codeNames.length;i++){
        HashMap<String,String> hashMap = new HashMap<>();
        hashMap.put("codeNames",codeNames[i]);
        hashMap.put("codeTexts",codeTexts[i]);
        list.add(hashMap);
    }
    SimpleAdapter adapter = new mSimpleAdapter(this,list,R.layout.list_view,
            new String[]{"codeNames","codeTexts"},
            new int[]{R.id.listView_codeName,R.id.listView_codeText});
    listView.setAdapter(adapter);
    listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
            TextView textView = view.findViewById(R.id.listView_codeName);
            textView.setTextColor(Color.argb(0xff,0xaa,0xaa,0xaa));
        }
    });

}

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐