带有自定义适配器的 ListView

2024-01-05

我遵循了几个教程,但仍然无法填充我的列表视图。 我究竟做错了什么?

这是布局 spaced_list.xml

<?xml version="1.0" encoding="utf-8"?>
<ListView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/mList"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

</ListView>

这是 spaced_list_item.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:padding="10dp" 
    android:background="#efefef">

<TextView
    android:id="@+id/leftItem"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:gravity="left"
    android:text="Left Text View" />

<TextView
    android:id="@+id/rightItem"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentRight="true"
    android:gravity="right"
    android:text="Right Text View" />

</RelativeLayout>

这就是班级

public class AllCategoriesActivity extends BaseActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.spaced_list);


    ListView lv = (ListView) findViewById(R.id.mList);
    TextView abHeader = (TextView) findViewById(R.id.header);
    abHeader.setText("Categories");

    CategoryDataSource cDataSource = new CategoryDataSource(this);
    ArrayList<Category> allCategories = cDataSource.getAllCategories();
    CategoriesAdapter cAdapter = new CategoriesAdapter(this, allCategories);
    lv.setAdapter(cAdapter);

}

public class CategoriesAdapter extends ArrayAdapter<Category>{
    private Context context;
    private ArrayList<Category> categories;

    public CategoriesAdapter(Context context, ArrayList<Category> categories){
        super(context, 0);
        this.context = context;
        this.categories = categories;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        if (convertView == null) {
            LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            convertView = inflater.inflate(R.layout.spaced_list_item, parent, false);
        }

        Category c = categories.get(position);  

        TextView tvLeft = (TextView) convertView.findViewById(R.id.leftItem);
        tvLeft.setText(c.getTitle());

        return convertView;
    }
}
}

我确保我能从中获得价值cDataSource.getAllCategories();


改变这个:

  public CategoriesAdapter(Context context, ArrayList<Category> categories){
        super(context, 0); // <- Wrong constructor
        this.context = context;
        this.categories = categories;
    }

To this:

  public CategoriesAdapter(Context context, ArrayList<Category> categories){
        super(context, 0, categories);
        this.context = context;
        this.categories = categories;
    }

您当前正在拨打电话this https://github.com/android/platform_frameworks_base/blob/master/core/java/android/widget/ArrayAdapter.java#L103-L105超类的构造函数:

  public ArrayAdapter(Context context, int textViewResourceId) {
        init(context, textViewResourceId, 0, new ArrayList<T>());
    }

这最终将创建一个新的ArrayList并忽略您传入的数据。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

带有自定义适配器的 ListView 的相关文章

随机推荐

  • 饼图标签被切断

    我正在制作饼图 一些标签被剪掉了 我想缩小情节以容纳所有标签 下面是一个可重现的示例 library plotly plot ly type pie values 1 19 labels c 101 119 textinfo label v
  • 如果表中没有索引,如何配置 NHibernate 映射到数组?

    我有一个现有的 POCO 类库 其中子集合全部存储在数组中 例如 Customer 类有一个 Invoice 数组来保存其发票 class Customer public int ID public Invoice invoices cla
  • 整数宽度与位域声明相关吗?

    我试图找到一个不应该写的理由 struct bitfield signed foo 4 unsigned bar 2 而不是详细指定 struct bitfield signed int foo 4 unsigned int bar 2 由
  • 实现抽象方法时更改参数类型

    是否有某种方法可以将抽象类型定义为抽象方法中的参数 并且当在派生类中实现该方法时 可以更改该方法的类型以接受派生类型 Code public abstract class ProductBase public class SomeProdu
  • 将类似 facebook 的按钮与动态加载的内容集成

    我正在开发的网站包含通过 AJAX 动态加载的项目列表 当您向下滚动页面时 会加载更多项目 现在 我的客户想要为每个项目添加一个类似 Facebook 的按钮 以及喜欢此按钮的人数 集成默认的点赞按钮没有问题 但是如何将点赞按钮添加到通过
  • PackageManager.getComponentEnabledSettings() 在冷启动之间是否持续存在?

    如果我使用下面的代码禁用 AndroidManifest xml 中定义的静态 BroadcastReceiver 它会在重新启动后重新启用吗 似乎不是 但文档没有说明是否应该 final ComponentName compName ne
  • 计算R中表格每一行的线性趋势线

    是否有可能在不使用循环的情况下对数据帧的每一行进行线性回归 趋势线的输出 截距 斜率 应作为新列添加到原始数据框中 为了更清楚地表达我的意图 我准备了一个非常小的数据示例 day1 lt c 1 3 1 day2 lt c 2 2 1 da
  • Python Scrapy 和 Yield

    我目前正在第一次使用 Scrapy 开发爬虫 也是第一次使用 Yield 我仍在努力思考产量问题 刮刀 抓取一页以获取日期列表 解析 使用这些日期来格式化 URL 然后抓取 parse page contents 在此页面上 它找到每个单独
  • 使用 NSURLConnection 的自定义子类,它稍后如何“找到”类中的附加数据?

    这个博客提供了一个很好的解决方案来处理多个 NSURLConnections 创建一个自定义的 CustomURLConnection 类 它有一个额外的tag财产 http blog emmerinc be index php 2009
  • SharePoint 2010 文档库版本注释

    我想强制用户在签入文档之前添加评论 当用户选择签入时 会显示默认的弹出页面 以便选择版本和撰写评论 但评论字段不是必填字段 我们可以将其设为必填字段吗 你可以通过 EventReceiver 来做到这一点 public class Even
  • 使用 .htaccess 删除 .php 并重定向到其非 .php 版本

    我有一个网站 需要删除每个文件的 php 扩展名 然后将指向包含 php 扩展名的任何文件的任何链接重定向到同一文件 但不包含 php 我找到了以下代码 它非常有用 但是文件夹中包含的任何内容都将被重定向到根目录 如下例所示 http ww
  • 如何仅在 div 加载时运行函数?

    我只想在加载 div 时运行函数 当我加载页面时 会加载许多文件 在列表的末尾 PHP 回显一个 div 当显示这个时 jQuery 应该运行一个函数 我可以通过点击事件来完成此操作 但我希望它能够自动工作 而无需按下按钮 单击后 它的工作
  • 尝试了解 Pandoc 如何从 Markdown 转换为 Latex

    如果这是重复的话 我深表歉意 我有一个 Markdown 文件test md https www akshaygaur org test md它有两个乳胶数学模式部分 第一个乳胶块 在 md 文件中 begin flalign P 1
  • VScode:如何更改 HTML 打开和关闭标记的颜色

    如何更改 VScode 中 HTML 打开 关闭标签的颜色以匹配下图 我尝试过使用Highlight Matching Tag扩展名和以下设置 但这仅适用于选择 onFocus 标签 我希望开放标签的实际字体颜色与所有结束标签不同 谢谢你
  • 是否可以在不使用 ID 的情况下实现自增编号?

    我继续谷歌搜索并发现唯一的方法是使用 Id GeneratedValue strategy GenerationType Identity 但我已经有一个主键 我只需要另一个自动递增的字段 通过手动计算来编码确实很困难 我看到以下选项 1
  • iOS10 上的地址簿崩溃

    在 iOS10 0 中 从联系人选择器中选择联系人会使应用程序崩溃 联系人选择器显示使用ABPeoplePickerNavigationController像这样 let contactsPicker ABPeoplePickerNavig
  • maven 使用简单的命令行安装和部署第 3 方依赖项

    我们有许多未在任何地方托管的第三方依赖项 对于每一个 我们都有一个 jar 文件 我们希望能够将其安装和 或部署到我们的存储库 一些 jar 文件有自己的依赖项 我们也需要声明它们 我们为每个 jar 文件创建了 pom xml 文件 声明
  • ANR 错误 - 屏幕关闭 - 我该如何处理它们?

    我在开发人员控制台上收到此消息 指出我的应用程序已冻结 因为 ANR 意图广播 act android intent action SCREEN OFF flg 0x40000000 没有堆栈跟踪 因为这是由 Froyo 之前的用户提出的
  • 如何从 Sails JS 中的现有数据库生成模型?

    我首先从SailsJS and MySQL 我的数据库中有很多表 所以 我不知道在SailsJS有一个从数据库生成模型的工具 例如Database First in Entity Framework ASP 您应该使用 自动生成现有模型库数
  • 带有自定义适配器的 ListView

    我遵循了几个教程 但仍然无法填充我的列表视图 我究竟做错了什么 这是布局 spaced list xml