gpt4 book ai didi

java - 在 ListView 中隐藏和显示列表项无法正常工作

转载 作者:行者123 更新时间:2023-12-02 02:30:11 24 4
gpt4 key购买 nike

我使用了ListView,其中每个项目都有两个TextView和一个ImageView。我只想仅在用户单击列表项时显示第二个 TextView

我的代码,

abc.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
MyAdapter.ViewHolder holder= (MyAdapter.ViewHolder) view.getTag();
if (holder.txtSecond.getVisibility() == View.VISIBLE) {
holder.txtSecond.setVisibility(View.GONE);
holder.image.setRotation(0);
} else {
holder.txtSecond.setVisibility(View.VISIBLE);
holder.image.setRotation(180);
}
}
});

getView 函数如下所示。

@Override
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = activity.getLayoutInflater();

if (convertView == null) {
convertView = inflater.inflate(R.layout.info_listview_items, null);
holder = new ViewHolder();
holder.txtFirst = (TextView) convertView.findViewById(R.id.heading);
holder.txtSecond = (TextView) convertView.findViewById(R.id.description);
holder.image=(ImageView)convertView.findViewById(R.id.arrow);
convertView.setTag(holder);

} else {
holder = (ViewHolder) convertView.getTag();
}

HashMap map = list.get(position);
holder.txtFirst.setText(map.get("question").toString());
holder.txtSecond.setText(map.get("answer").toString());
return convertView;
}

最初,第二个 TextView 可见性是 View.GONE

问题是,当我单击 ListView 中的项目时,第二个 TextView 可见。但同时其他一些 TextView 也是可见的。 当列表中的项目数量最少时,它会起作用。我尝试了 5 个项目。

谁能帮帮我。谢谢!

最佳答案

这种方法是错误的,您应该保存单击的位置并在适配器上调用notifyDataSetChanged()。
之后,在 getView 中添加代码,如果当前位置等于保存的点击位置,该代码将隐藏/显示一些 View ,如下所示:

if (position == clickedPosition) {
holder.txtSecond.setVisibility(View.GONE);
holder.image.setRotation(0);
} else {
holder.txtSecond.setVisibility(View.VISIBLE);
holder.image.setRotation(180);
}

关于java - 在 ListView 中隐藏和显示列表项无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47235518/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com