如何使用基本适配器更改click view android的背景色

如何使用基本适配器更改click view android的背景色,android,baseadapter,Android,Baseadapter,我想设置LinearLayout中包含的已单击的TextView的背景色。但我无法设定各自的背景。我没有面对 清除以前单击的背景。如果单击“全部”,则设置所有背景色。 你能推荐我吗, 如何设置LinearLayout背景中包含的可点击TextView 以下是我的示例代码: holder.txtName = (TextView) convertView.findViewById(R.id.row_cell_text_dummy_multilevel); holder.l_select =

我想设置
LinearLayout
中包含的已单击的
TextView
的背景色。但我无法设定各自的背景。我没有面对 清除以前单击的背景。如果单击“全部”,则设置所有背景色。 你能推荐我吗, 如何设置
LinearLayout
背景中包含的可点击
TextView

以下是我的示例代码:

holder.txtName = (TextView) convertView.findViewById(R.id.row_cell_text_dummy_multilevel);
    holder.l_select = (LinearLayout) convertView.findViewById(R.id.linear_select);

 holder.txtName.setTag(position);

    holder.txtName.setOnClickListener(new View.OnClickListener() {
                public void onClick(View v) {
                select_pos=(Integer) holder.txtName.getTag();
                    if (position==select_pos) {
                        holder.l_select.setTextColor(Color.RED);
                    }else {
                        holder.l_select.setTextColor(Color.WHITE);
                    }
                }
            });

我设法做到了这一点,虽然你必须做一些家庭作业,并找出如何反映自己的变化。目前,只有在滚动视图时才能反映更改

但我希望它能帮助你

1.声明设置单击位置的静态变量

private static int selectedPostion;
2.在构造函数中将
selectedPosition
的值设置为-1

3.在
onclickListener
中的
getView
方法中,执行以下操作:

 int value = (Integer)((TextView)v).getTag();

Log.e("tag","(TextView)v).getTag() : " + value);
Log.e("tag", "position : " + position);

if(value == position) {
selectedPostion = position;
}else {
    selectedPostion = -1;
}
4.在返回视图之前完全单击onClick代码下,编写以下内容:

if(selectedPostion == position) {
    view.setBackgroundColor(mContext.getResources().getColor(R.color.even_color));
    // or  holder.l_select.setTextColor(Color.RED);
}else {
view.setBackgroundColor(mContext.getResources().getColor(android.R.color.white));
    // or holder.l_select.setTextColor(Color.WHITE);
}

希望有帮助

在获取标记之前,先将标记设置为textview。请参阅我编辑的问题。使用setBackground而不是setTextColorbackground不是我的问题。第一次单击位置1时,其背景会发生变化,如果下次单击位置4,则还会单击位置4的背景色。这里两个1和4改变颜色。等等。我只想更改clickalble背景。你只想更改click时的背景颜色,取消单击时恢复为原始颜色?对不起,你的想法不起作用,请看我的完整代码,我可以看到我的文本查看文本。请看我的全部代码。您需要在文本视图的onclick侦听器中的#3中编写if条件。它只会工作,如果你滚动,所以你将不得不寻找一个同样的工作