【问题标题】:Custom listview footer in my custom adapter?我的自定义适配器中的自定义列表视图页脚?
【发布时间】:2013-11-02 23:47:45
【问题描述】:

我很好奇是否可以在我的 arrayAdapter 类中为我的自定义列表视图创建页脚?

我希望从这个页脚中得到一个小计、税收和总文本视图,当新项目应用到它时,它会自动对我的列表视图的“订单”进行求和并进行“数学运算”。

在 arrayAdapter 中这样做是最好的方法吗?还是我应该在片段内做?

我试图在片段中执行此操作,但在从列表视图的行中获取数据时遇到了困难。

只是为了澄清;列表视图在它自己的片段中,除了我上面提到的文本视图之外,它会非常单独。

如果在片段中,我应该把它放在生命周期的哪个部分?我还没有设置 onClickListeners,但我觉得将所有内容都放在 onCreateView() 中是不正确的,因为我将动态添加内容。

编辑:我在片段中执行此操作时遇到的问题是 getListviewChildren 返回为空;我假设是因为我在我的 onCreateView 中使用它?

【问题讨论】:

    标签: android android-listview android-fragments


    【解决方案1】:

    您可以使用 ListView 自己的实现作为页脚视图,而不是自己在适配器中实现。只需在列表上调用 addFooterView 并将所需的视图作为页脚传递给它。

     ListView listView = .. //create your list, or inflate it from xml...
     View footerView = ... //create your view, or inflate it from xml...
     listView.addFooterView(footerView);
     listView.setAdapter(myAdapter);
    

    你应该知道的两件事:最好在列表中使用 setAdapter 之前调用这个方法,因为除了最新版本的 android 之后调用它不会有任何影响。另一件事是这样做是通过将您的适配器包装在另一个适配器中来实现的,因此在使用它之后您不能使用 getAdapter() 来获取您的原始适配器。

    欲了解更多信息,请访问:http://developer.android.com/reference/android/widget/ListView.html#addFooterView%28android.view.View%29

    【讨论】:

    • 听起来不错;即使 GetAdapter 不会提供我的原始适配器,我仍然可以在 notifyDataSetChanged() 中使用吗?我将如何从我的列表视图中获取信息并将其放在我的页脚中,因为每次我调用 notifyDataSetChanged 时它都需要更新?
    • 您仍然可以使用 notifyDataSetChanged(),或者保留对原始适配器的引用并在其上调用 notifyDataSetChanged(),或者您甚至可以使用适配器 getAdapter() 返回给您,如果我我没有弄错这也可以。要修改页脚中的数据,您可以保留对 footerView 的引用,并在每次要调用 notifyDataSetChanged() 时修改那里的数据。我建议创建一个方法,比如说 updateData(),并在其中做两件事:在您的原始适配器上调用 notifyDataSetChanged(),并使用您的 footerView 做任何您需要的事情。祝你好运!
    猜你喜欢
    • 2011-12-31
    • 2012-02-21
    • 1970-01-01
    • 2015-03-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多