如何使用基本适配器更改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条件。它只会工作,如果你滚动,所以你将不得不寻找一个同样的工作