gpt4 book ai didi

java - 单击 ListView 项内元素的事件以切换 ListItem 的内容

转载 作者:行者123 更新时间:2023-12-01 12:40:56 25 4
gpt4 key购买 nike

我的android应用程序中有一个 Activity ,列出了ListView中的一些信息,在每个项目的左上角有一个更多信息图标,当用户触摸时此图标应用程序应将此列表项的内容更改为一些有用的信息,并且该图标还应更改为另一个图标,例如关闭图标,当用户触摸关闭图标时,应用程序应再次显示列表项内容。

为了更改图标,我使用了此代码,但第一次单击图标时没有任何反应,第二次它发生变化,有时当我单击其中一个图标时,另一个列表项的图标发生变化。

ListActivity.java

list.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View viewCliced, int position, long id)
{
img = (ImageView)viewCliced.findViewById(R.id.img_icon);
img.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View arg0)
{
img.setImageResource(R.drawable.setting);
}
});
}
});

此代码更改图标,但用户应触摸图标两次,有时更改另一个列表项的图标:|

这是ListView Item的XML

listitem.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >

<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:layout_marginTop="10dp"
android:background="@drawable/item_select"
android:orientation="vertical" >

<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:orientation="horizontal"
android:weightSum="8" >

<LinearLayout
android:layout_width="0dp"
android:layout_height="fill_parent"
android:layout_weight="1"
android:gravity="top|left"
android:orientation="vertical" >

<ImageView
android:id="@+id/img_icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:src="@drawable/bookabout" />
</LinearLayout>

<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="7"
android:gravity="right|center_vertical"
android:orientation="vertical" >

<TextView
android:id="@+id/txt_subject"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="15dp"
android:text="نام فصل"
android:textColor="#000000" />
</LinearLayout>
</LinearLayout>

<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="right|center_vertical"
android:orientation="vertical" >

<TextView
android:id="@+id/txt_explanation"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="15dp"
android:text="توضیحات فصل درسی"
android:textColor="#000000" />
</LinearLayout>
</LinearLayout>

</LinearLayout>

我应该如何开发这个功能?当用户触摸 ListView 项内的图标时,在 ListView 项的两种内容之间切换

我读了很多关于 ListView 的文章,但我找不到方法来做到这一点,

非常感谢您的回答

最诚挚的问候

最佳答案

“为了更改图标,我使用了此代码,但第一次单击图标时没有任何反应,第二次它发生变化,有时当我单击其中一个图标时,另一个列表项的图标会发生变化。”

因为您在列表监听器中声明了监听器,所以第一次单击您的监听器设置的图标(因为您单击列表项),第二次图标响应。拉出img的监听器并将其放入onCreate方法中。在适配器内部修改 getView 方法,如下所示:

@Override
public View getView(int position, View row, ViewGroup parent) {
final int listItemPosition = position;
ImageView img = (ImageView)row.findViewById(R.id.image1);

img.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
// Change icon here

// If you'd like to delete item use the code below
// List.remove(listItemPosition);
// Adapter.this.notifyDataSetChanged();
}
});
}

关于java - 单击 ListView 项内元素的事件以切换 ListItem 的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25105194/

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