单击新视图时如何删除 setBackgroundResource?
How can I remove setBackgroundResource when new View is clicked?
我有一个带文本视图的水平列表视图。当我单击视图中的文本视图时,该特定文本视图会获得一个边框。
public View getView(int position, View convertView, ViewGroup parent) {
View retval = LayoutInflater.from(parent.getContext()).inflate(R.layout.minute_listview, null);
Typeface afBold = Typeface.createFromAsset(getAssets(), "fonts/AftenScreen-Bold.ttf");
minuteText = (TextView) retval.findViewById(R.id.title);
Button button = (Button) retval.findViewById(R.id.clickbutton);
button.setOnClickListener(mOnButtonClicked);
minuteText.setText(dataObjects[position]);
minuteText.setTypeface(afBold);
//THIS IS WHERE THE BORDER GETS SET
minuteText.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
v.setBackgroundResource(R.drawable.border);
}
});
return retval;
}
现在,如何删除此边框并将其设置在下一个单击的文本视图上?
使用它会给你一个白色背景或半透明背景,换句话说它已被删除
WhatEverView.setBackground(new ColorDrawable(Color.TRANSPARENT));
好的完整代码
int pos -1;// default is -1, which means no one has altered it
// replicate this onclick listener logic
minuteText.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(pos != -1){ // it is not -1 that means some1 has altered it
parentView.findViewById(pos).
setBackground(new ColorDrawable(Color.TRANSPARENT));
// the above line searched for the view and changed the background
}
pos = v.getId(); // the id of the new view, keep doing it
v.setBackgroundResource(R.drawable.border);
}
});
因此,请将此用于您希望影响的所有 onclick 侦听器
符合您的要求吗?
添加这个
TextView ClicledTv ;//to save the clicked tv id
然后
minuteText.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(Clickedtv!=null)
clickedtv.setBackground(R.drawable.anotherOne);
v.setBackgroundResource(R.drawable.border);
clickedTv=minuteText;
}
});
我有一个带文本视图的水平列表视图。当我单击视图中的文本视图时,该特定文本视图会获得一个边框。
public View getView(int position, View convertView, ViewGroup parent) {
View retval = LayoutInflater.from(parent.getContext()).inflate(R.layout.minute_listview, null);
Typeface afBold = Typeface.createFromAsset(getAssets(), "fonts/AftenScreen-Bold.ttf");
minuteText = (TextView) retval.findViewById(R.id.title);
Button button = (Button) retval.findViewById(R.id.clickbutton);
button.setOnClickListener(mOnButtonClicked);
minuteText.setText(dataObjects[position]);
minuteText.setTypeface(afBold);
//THIS IS WHERE THE BORDER GETS SET
minuteText.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
v.setBackgroundResource(R.drawable.border);
}
});
return retval;
}
现在,如何删除此边框并将其设置在下一个单击的文本视图上?
使用它会给你一个白色背景或半透明背景,换句话说它已被删除
WhatEverView.setBackground(new ColorDrawable(Color.TRANSPARENT));
好的完整代码
int pos -1;// default is -1, which means no one has altered it
// replicate this onclick listener logic
minuteText.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(pos != -1){ // it is not -1 that means some1 has altered it
parentView.findViewById(pos).
setBackground(new ColorDrawable(Color.TRANSPARENT));
// the above line searched for the view and changed the background
}
pos = v.getId(); // the id of the new view, keep doing it
v.setBackgroundResource(R.drawable.border);
}
});
因此,请将此用于您希望影响的所有 onclick 侦听器
符合您的要求吗?
添加这个
TextView ClicledTv ;//to save the clicked tv id
然后
minuteText.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(Clickedtv!=null)
clickedtv.setBackground(R.drawable.anotherOne);
v.setBackgroundResource(R.drawable.border);
clickedTv=minuteText;
}
});