我有一个显示文章列表的应用程序,点击后会将其背景颜色更改为绿色。 ListView
扩展了ViewPager
。发生颜色变化,以便用户知道已经读取了哪些文章。
它也会被记住,因此下次用户加载相同列表时,已点击的项目仍为绿色。下面的代码是我用来完成这项工作的代码。我现在遇到的问题是,当按下足够长的上下文菜单时,ListView
上的文章在选择时不再改变颜色。
在我点击每个项目的绿色背景更改之前,选择用于变灰的ListView
(上下文模式)中的项目。上下文菜单和功能仍然有效,但它不再显示已选择的项目。有人可以建议吗?
public void onListItemClick(ListView l, View v, int postion, long id) {
Article a = ((toReadListAdapter) getListAdapter()).getItem(postion);
// when item has been clicked on, variable is set to true.
a.setRead(true);
saveToReadList(toReadList);
.....
自定义适配器:
// Defining custom adapter
private class toReadListAdapter extends ArrayAdapter<Article> {
public toReadListAdapter(ArrayList<Article> listToRead) {
super(getActivity(), 0, listToRead);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
convertView = getActivity().getLayoutInflater().inflate(R.layout.new_articlelistfragment, null);
}
Article en = getItem(position);
.....
/*if the article has been clicked on, then read attribute value is true and
background is green*/
if(en.isRead()){
convertView.setBackgroundColor(Color.parseColor("#C8E6C9"));
}else{
convertView.setBackgroundColor((Color.parseColor("#ffffff")));
}
/* convertView.setBackgroundColor(Color.parseColor("#66BB6A"));*/
return convertView;
答案 0 :(得分:0)
在listView项目集onClickListener()
中
CheckedTextView item = (CheckedTextView)view;
if(item.isChecked()){
convertView.setBackgroundColor(Color.parseColor("#C8E6C9"));
}