【问题标题】:Android: Display Multiple Pieces of Cursor Data Together in TextViews instead of a ListViewAndroid:在 TextViews 而不是 ListView 中一起显示多条光标数据
【发布时间】:2018-10-12 21:04:03
【问题描述】:

我能够完成拉取不同列索引的随机行,并使用自定义 ArrayAdapter (List<String>) 在我的主活动中使用数据填充 ListView。我想获取相同的数据并使用它来填充主活动中的单个文本视图(或包含两个 TextViewsLinearLayout)。 TextView(s) 将采用以下格式:

字符串整数:整数 进入

书名章节#:条目# 进入

我有以下代码可以从我的 SQLite 数据库中提取我的随机信息并且它可以工作:

public List<String> getEntry() {
    List<String> list = new ArrayList<>();
    Cursor cursor = database.rawQuery("SELECT * FROM bookdatabase ORDER BY RANDOM() LIMIT 1", null);
    cursor.moveToFirst();
    while (cursor != null && cursor.getCount() > 0 & !cursor.isAfterLast()) {
        list.add(cursor.getString(3));
        list.add(cursor.getString(4));
        list.add(cursor.getString(5));
        list.add(cursor.getString(6));
        cursor.moveToNext();
    }
    cursor.close();
    return list;
}

这是我的自定义适配器,用于在 ListView 中显示数据:

 public EntryAdapter(Context context, int resource1, List<String> entries) {
    super(context, resource1, entries);
    mContext = context;
    mResource1 = resource1;
    mEntries = entries;
}
@NonNull
@Override
public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) {
    View listItem = convertView;
    if (listItem == null) {
        listItem = LayoutInflater.from(mContext).inflate(mResource1, parent, false);
    }
    TextView entryTextView = (TextView) listItem.findViewById(R.id.bookName);
    entryTextView.setText(mEntries.get(position));

    return listItem;
}

这是我尝试从我的主要活动中访问它以填充 TextView 的地方,该 TextView 目前可以在 ListView 中显示它:

 databaseAccess.open();
    mEntry = databaseAccess.getEntry();
    databaseAccess.close();
    mEntryAdapter = new EntryAdapter(this, 
    R.layout.entry_item, mEntry);
    this.mEntryListView.setAdapter(mEntryAdapter);

提前谢谢你。

【问题讨论】:

    标签: android android-arrayadapter android-cursoradapter


    【解决方案1】:

    经过大量研究,我解决了我的问题。我最终使用了一篇关于 stack over flow 的文章和一篇关于 GitHub 的文章中包含的信息;两者都是关于 CursorAdapters 的。最重要的是,我创建了一个光标适配器而不是一个数组适配器,它可以完美地工作。这些帖子在这里,以防有人遇到同样的问题:

    Cursor adapter and sqlite example

    https://github.com/codepath/android_guides/wiki/Populating-a-ListView-with-a-CursorAdapter

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-01-05
      • 1970-01-01
      • 1970-01-01
      • 2020-03-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多