在itemclick的自定义列表视图中显示隐藏文本视图 [英] Show hide textview in custom listview on itemclick
问题描述
我在自定义列表视图中有两个textview.当我选择一个列表项时,我希望对选定的行可见holder.text2,而当我选择另一行时,我希望前一个holder.text2不可见并且新选中的位置行holder.text2变得可见.我该怎么办?.
I have two textviews in custom listview.When i select a list item, i want holder.text2 to be visible for the selected row and when i select another row, i want the previous holder.text2 to be invisible and the new selected position row holder.text2 to become visible. How can i do this?.
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View row = convertView;
ViewHolder holder;
if (row == null) {
LayoutInflater inflater = ((Activity) context).getLayoutInflater();
row = inflater.inflate(layoutResID, parent, false);
holder = new ViewHolder();
holder.text1 = (TextView) row.findViewById(R.id.text1);
holder.text2 = (TextView) row.findViewById(R.id.text2);
row.setTag(holder);
} else {
holder = (ViewHolder) row.getTag();
}
Item item = items.get(position);
holder.text1.setText(item.gettext());
holder.text2.setText(item.getText2());
return row;
}
public static class ViewHolder {
TextView text1, text2;
}
当单击项目时:
@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
long id) {
ViewHolder holder= (ViewHolder) view.getTag();
holder.text2.setVisibility(View.VISIBLE);
}
推荐答案
在列表项持有者中添加一个布尔值falg,然后尝试更改项目单击中标志的状态:
Add one boolean falg in your list item holder and try to change state of flag in item click :
public class Item {
private String text1;
private String text2;
private boolean isSelected;
public String getText1() {
return text1;
}
public void setText1(String text1) {
this.text1 = text1;
}
public String getText2() {
return text2;
}
public void setText2(String text2) {
this.text2 = text2;
}
public boolean isSelected() {
return isSelected;
}
public void setSelected(boolean isSelected) {
this.isSelected = isSelected;
}
}
现在尝试更改项目单击时的标志状态:
Now try to change flag state on item click :
ArrayList listItems;
ArrayList listItems;
@Override
public void onItemClick(AdapterView<?> parent, View view, int position,long id) {
for (Item item :listItems){
item.setSelected(false);
}
listItems.get(position).setSelected(true);
adapter.notifyDataSetChanged();
}
显示/隐藏text2基本项目选定标志值:
Show/Hide text2 base item selected flag value :
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if (convertView == null) {
holder = new ViewHolder();
convertView = LayoutInflater.from(context).inflate(layoutResID, parent, false);
holder.text1 = (TextView) convertView.findViewById(R.id.text1);
holder.text2 = (TextView) convertView.findViewById(R.id.text2);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
holder.text1.setText(items.get(position).getText1());
holder.text2.setText(ititems.get(position)getText2());
if(items.get(position).isSelected()){
holder.text2.setVisibility(View.VISIBLE)
}else{
holder.text2.setVisibility(View.GONE)
}
return convertView;
}
这篇关于在itemclick的自定义列表视图中显示隐藏文本视图的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!