【问题标题】:spinner inside listview custom row layout and Adapters列表视图自定义行布局和适配器内的微调器
【发布时间】:2013-07-03 07:01:12
【问题描述】:

我几乎关注了所有关于此的主题,但没有找到答案(如果有的话..)。
我有应用程序,它是值表,每个值都有微调器供用户选择。
我通过 listview(也可以使用带有 1 列的 gridview)和自定义布局(linearLayout 和 2 textViews 为 ID 和 VALUE_TEXTSpinner)实现它。
微调器也具有自定义布局 - 微调器和文本中的值 Id。
这两个 ID(ListView 值 ID 和 Spinner 值 ID 对用户隐藏,仅供我使用)。
我对我的实施有几个问题:

1) 当您需要保存其 ID 时,这是在 UI(ListViewSpinners)中实现行的最佳方式吗?我从Json 获取数据,它为我获取了ListView 项(ID 和TEXT),并且对于我得到的每个微调器(在将值ID 发布到服务器之后)微调器的值及其ID。我只使用 ID 与服务器通信,所以我必须将它们保存在某个地方..

2) 有没有办法从Spinner OnItemSelected 方法中获取 ListView 行(用于获取其 ID)?我只有父参数,即AdapterView

3) 现在我正在扩展 BaseAdapter(一个用于 ListView,一个用于 Spinner),以便能够在 UI 中填充数据。我正在使用它的 getView 方法来扩展自定义布局并将数据放入其中? ArrayAdapter 没有更简单的方法来执行此类操作吗?

非常感谢。

【问题讨论】:

    标签: android spinner android-arrayadapter baseadapter


    【解决方案1】:

    您可以使用 ListActivity,因为它为您提供了许多快捷方式,使事情变得更简单,并使您的代码更具可读性。

    例如,您会获得 onListItemClick() 方法,每当您单击一个项目时都会调用该方法,从而避免您创建单独的侦听器。

    如果您想更改 ListActivity 的布局,您仍然可以使用 Activity 中的 setContentView() 方法。只要您的 View 中某处有一个名为 @android:id/list 的 ListView,ListActivity 仍然可以工作。

    【讨论】:

    • 我理解,你是对的。唯一的问题是布局 - 我在每一行都需要微调器,所以我仍然需要自定义布局和适配器,不是吗?另外 - ListActivity 如何帮助我选择微调器 - 我需要在选择微调器 ID 和微调器位于其中的列表行 id 的情况下执行操作(例如,列表中的第三行具有 ID [这是外部的ID,而不是 7 的 ListView 行 ID],我在微调器中选择了第二个选项,其 ID 为 9,我需要使用两个 ID 对服务器执行 POST 以获得正确的答案..)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-31
    相关资源
    最近更新 更多