繁体   English   中英

片段中具有定制适配器的定制列表视图

[英]Custom list view with custom adapter in a fragment

我正在制作一个应用程序,其中有一个活动已实现了底部导航栏和导航栏。 当我通过意图加载另一个活动时,它会加载页面,但导航栏都消失了。 但是,当我加载片段类时,两个导航栏也会显示,它们也可以工作,页面也将加载。

我已经在活动扩展类中使用自定义适配器实现了listview,但是对于片段类却无法做到这一点。 我看过很多教程,但是所有教程都使用预定义的数组适配器。 我希望列表的每一行都包含一个相对布局。

任何帮助,将不胜感激。 谢谢。

是。 有很多方法,但是我做的方法却大不相同(这就是我的想法)。 您需要做的就是按照我列出的步骤进行操作。

步骤1 :将列表视图代码粘贴到xml文件中(如果以前使用过,请删除表格布局,否则不用担心)。 另外,从XML中删除滚动视图,因为它们会导致列表视图出现问题。

步骤#2 :通过将对象变成Java并通过findViewById为其提供正确的ID来初始化listview

步骤#3 :为列表视图的每一行创建所需的自定义布局。 例如,带有2个文本视图和一张图片等的相对布局。在这里使用您的想象力:p

步骤#4 :由于在片段中,您必须使用上下文或视图变量来提供xml中变量的ID。 为此,我们从onCreateView方法获得三个对象,它们是:

public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState)

为LayoutInflater创建一个全局变量,并将其设置为与该inflater相等,然后使用全局inflater初始化视图等。如下所示:

LayoutInflater global;
global = inflater;
view = global.inflate(R.layout.your_frag_id, container, false);

步骤#5 :对于自定义适配器,您必须为其提供不同的视图,从中获取行项目的ID。 在Activity扩展类中,它很容易,但在Fragments中却不是。 它是这样完成的。

public View getView(int i, View view, ViewGroup viewGroup) {
  view = global.inflate(R.layout.your_seperate_xml_id_for_each_row_of_the_list_view, null);}

步骤#6 :现在,您可以简单地使用listView.setAdapter函数添加值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM