[英]How do I get String values on listview from the ArrayList<String[]>?
嗨,我之前曾问过如何更新listview并得到使用ArrayAdapter的建议。我关注的是现在的问题是它正在更新listviews但未包含某些对象的期望值。
我的代码是这样的:
Cursor cursor = db.rawQuery("SELECT count(*) FROM BOOKMARKS ", null);
//if any contact found moveToFirst of that contacts or points to 1st email
cursor.moveToFirst();
//checking columns exhist or not
if (cursor.getInt(0) > 0)
{
//get all the contacts from table 'BOOKMARKS'
c = db.rawQuery("SELECT * FROM BOOKMARKS", null);
//get the index of mentiond and required columns
ID = c.getColumnIndex("ID");
booktitl = c.getColumnIndex("Booktiltle");
audiotime=c.getColumnIndex("BookmarkTime");
// Check result.
c.moveToFirst();
if (c != null)
{
// Loop through all Results
do
{
cont = new String[3];
cont[0] = Integer.toString(c.getInt(ID));
cont[1] = c.getString(booktitl);
cont[2] = c.getString(audiotime);
audiobooks.add(cont);
}
while(c.moveToNext());
c.close();
db.close();//close db resources
ArrayAdapter<String[]> arrayAdapter1=new ArrayAdapter<String[]>(this, R.layout.row3, R.id.itemr1,audiobooks);
lv.setAdapter(arrayAdapter1);
我如何在listview上获取字符串值?实际上是从数据库中获取并存储到Arraylist中的值。目前,我正在listview上显示一些对象值,但我想显示“有声读物”保存的内容。 请帮我解决。
您不能给ArrayAdapter
类型String[]
,因为要给它提供一个名为有声书的List
。
另外,我不确定标准ArrayAdapter
可以处理数据类型List<String[]>
。 它可能不起作用。 如果它不起作用,则必须通过扩展它来实现自己的ArrayAdapter
实现。
如果我理解正确,则想用数据库中每一行的数据填充ListView。 您必须创建一个新的Audiobook类型的类,其成员变量与数据库行相对应。 然后在res / layouts文件夹中创建一个必须显示对象数据的布局。 创建一个新的扩展ArrayAdapter类的类,在其中您可以使用创建的布局为视图填充视图,并在子视图中填充listview。 然后在您的主机中将新适配器设置为列表。
ArrayAdapter应该看起来像这样:
public class AudiobookAdapter extends ArrayAdapter<Audiobook> {
// constructor
// here you populate each view and put it in listview
public View getView (int position, View convertView, ViewGroup parent)
{
}
}
这是起点,您应该阅读有关扩展arrayadapters和自定义ListView的更多信息。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.