我正在尝试根据项的值更改 fragment 中 ListView
中列表项的颜色。任何建议都会很棒。我用 getView()
尝试了几个选项,但没有成功。
String[] validvalues = new String[] {personalList, doctorsList,carerList,
myMedList,mymedproblist,kinList,relyList,allergiesList
};
ArrayAdapter<String> files2 = new ArrayAdapter<String>(
getActivity(), android.R.layout.simple_list_item_1,validvalues);
View view2 = inflater.inflate(R.layout.verify, container, false);
list.setAdapter(files2);
list.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view2,int position, long id) {
String str = list.getItemAtPosition(position).toString();
Toast.makeText(getActivity(), position + " " + str,Toast.LENGTH_SHORT).show();
}
});
类似于 if string.contains("!!") > 将背景颜色设置为红色。
最佳答案
不使用 ArrayAdapter,而是创建一个自定义适配器类(可能派生自它)。然后,在 getView() 方法中,设置返回 View 的背景颜色。例如,只需将代码中的 ArrayAdapter 创建更改为:
ArrayAdapter<String> files2 = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,validvalues)
{
@Override
public View getView(int position, View convertView, ViewGroup parent)
{
View itemView = super.getView(position, convertView, parent);
if (getItem(position).contains("!!"))
itemView.setBackgroundColor(Color.RED);
return itemView;
}
};
关于android - 根据列表android中的值更改listview中列表项的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23474804/