gpt4 book ai didi

java - 可点击 listView 中的可编辑 EditText

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

我想制作一个可点击的 listView 和可编辑的 editText。
我有一个自定义列表adapter.java、自定义列表item.xml、mainActivity.java。

我试过了
1. android:descendantFocusability="blocksDescendants"
=> 失败。无法编辑editText。
2. editText android:focusable/enable/clickable = true
=> 失败。无法点击列表查看项目
3. getView{editText.onClickListener}
=>失败。

我想要可编辑 editText,而不仅仅是可点击的editText 和可点击的listView(listItem)。请帮忙。

customitem.XML

...

   <RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
android:gravity="center_vertical"
android:descendantFocusability="blocksDescendants"
>

//android:descendantFocusability="blocksDescendants" doesn't work

<EditText
android:id="@+id/tvItem"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:gravity="center_vertical"
android:textSize="20sp"
android:textColor="#ffffff"
android:layout_marginLeft="25dp"
android:textStyle="bold"
android:background="@null"
android:shadowColor="@color/shadow"
android:shadowDx="3"
android:shadowDy="3"
android:shadowRadius="1"
android:imeOptions="actionDone"
android:inputType="text"
android:focusable="true"
/>
<TextView
android:id="@+id/tvItemCount"
android:layout_width="@dimen/list_height"
android:layout_height="70dp"
android:layout_alignParentRight="true"
android:textColor="#ffffff"
android:textSize="22dp"
android:text="6"
android:background="#3300b7ff"
android:gravity="center_vertical|center_horizontal"
android:shadowColor="@color/shadow"
android:shadowDx="3"
android:shadowDy="3"
android:shadowRadius="1"
android:textStyle="bold"/>

<LinearLayout
android:layout_width="match_parent"
android:layout_height="2dp"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:background="@color/dark_shadow" >

</LinearLayout>
</RelativeLayout>

...

最佳答案

经过我自己的几次尝试,我向谷歌叔叔询问了您的问题。你知道他说什么吗?

ListView 无法很好地处理 EditText View 。如果很多人以前无法解决此问题,也许您会考虑一些“解决方法”,如HERE所述。 。这是对其他问题的答案,但即使您解决了上述问题,您也可能会遇到这个问题。

简而言之,@Andrew 建议使用带有简单 LinearLayout 的 ScrollLayout,而不是 ListView。在 onCreate 方法中,他膨胀了用于列表项的 View 并将其添加到 LinearLayout,并将其存储在 ArrayList 中,以便稍后将数据保存到每个 View 。

我知道这不能解决您的问题,但也许它让您有很多时间,您可以花这些时间寻找任何合理的解决方案。

编辑

这很有趣。受到@Rishabh Srivastava 链接的启发,我试图找到一些解决方案(我知道,我有点顽固)。

我已经创建了适配器布局-RelativeLayout,它完全由 Button 填充并在其上方(我的意思是字面意思是在它上方 - 在 Z 轴上)我放置了 EditText View 。我认为 edittext 将处理对其的点击,按钮将处理 edittext View 之外的点击。不幸的是,“点击”事件会通过所有 View 传播 - 因此,通过点击 edittext,我们也会点击按钮。

我认为我比每个人都聪明,所以我使用了 OnTouchListener - 我们可以处理单个“触摸”事件并返回真值,作为我们处理它的操作系统的信息。

你知道吗?我遇到了与上面链接中描述的问题完全相同的问题:

When I click on an EditText, the virtual keyboard shows itself, but the EditText loses focus and I have to click the EditText again.

我希望您不想再浪费时间了;)

关于java - 可点击 listView 中的可编辑 EditText,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25159768/

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