【问题标题】:Android ExpandableList with static items/without adapter带有静态项目/不带适配器的 Android ExpandableList
【发布时间】:2012-06-20 17:22:44
【问题描述】:

在我的应用程序中,有一个 Activity 包含很多视图(editText-fields,...)。因为屏幕太小,无法容纳所有视图。因此,我想使用一个 ExpandableList ,其中包含所有按语义分组(作为布局)的视图来列出项目。

有没有简单的方法来完成这项工作?实现适配器似乎有点复杂,因为列表应该只包含“静态”视图。

这样的东西会很好:

@Override
public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  ExpandableListView lv = (ExpandableListView) findViewById(R.id.explist);
  lv.addItem(findViewById(R.id.linearlayoutitemone);
  lv.addItem(findViewById(R.id.linearlayoutitemtwo);
  EditText et = (EditText) lv.getItem(1).findViewById(R.id.etBirthdate);
  et.setText("01.01.1970");
  (....)
}

【问题讨论】:

  • 使用适配器实际上更容易,如果不这样做,您最终可能会编写与在适配器中编写的代码相同的代码 + 一些额外内容(如 for 循环)。只需为自定义适配器找到一个好的模板,然后更改您必须要做的事情。

标签: android android-layout expandablelistview


【解决方案1】:

要映射静态数据,您可以使用SimpleExpandableListAdapter。 API 演示有an example of how to use it

【讨论】:

  • SimpleExpandableListAdapter 只接受要显示的数据(如字符串,可以放入 TextView 的所有内容)。我想显示完整的布局,包括 EditTexts、RadioButtons 等。
  • @user1437307 然后你必须扩展BaseExpandableListAdapter。这一点都不难,虽然如果你以前没有做过它可能看起来很吓人。
【解决方案2】:

我编写了一个扩展 BaseExpandableListAdapter 的自己的适配器。在适配器中,我保留布局的实例以显示为类变量——这不是关于性能的最佳解决方案,而是一个方便的解决方案。由于只有固定数量的项目要显示,因此性能问题不会太麻烦。

【讨论】:

    猜你喜欢
    • 2021-03-03
    • 2011-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多