【发布时间】:2018-10-12 21:04:03
【问题描述】:
我能够完成拉取不同列索引的随机行,并使用自定义 ArrayAdapter (List<String>) 在我的主活动中使用数据填充 ListView。我想获取相同的数据并使用它来填充主活动中的单个文本视图(或包含两个 TextViews 的 LinearLayout)。 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