在itemclick的自定义列表视图中显示隐藏文本视图 [英] Show hide textview in custom listview on itemclick

查看:70
本文介绍了在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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆