使用SimpleCursorAdapter有微调? [英] Using SimpleCursorAdapter with Spinner?

查看:118
本文介绍了使用SimpleCursorAdapter有微调?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有表DBmytable的有2 columsID,sampletext
我想查询sampletext的不同值和饲料到微调用SimpleCursorAdapter。

这里是被试

 的String [] COLS =新的String [] {sampletext};
INT [] = lbls新lbls [] {} android.R.id.text1;
mycursor = sdb.query(真的,MYTABLE,COLS,NULL,NULL,NULL,NULL,NULL,NULL);
SCA =新SimpleCursorAdapter(在此,android.R.layout.simple_spinner_item,mycursor,COLS,lbls,0);
sca.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spn.setAdapter(SCA);

当我运行这个我在第4行出现错误:ID不存在。
当我改变了第一行ID微调得到填充ID值。
但我需要sampletext,我在做什么错了?
鸭preciate任何建议


解决方案

 我在做什么错

你没有阅读文档...

有串的两个数组的列:首先在查询中使用,第二个在适配器构造函数(时使用的都只有一个阵列)

第一个告诉的列应采取光标sqlite的,第二个告诉适配器哪些应该显示/映射到单行视图...

下一页的CursorAdapter 需要与指定的列光标 _id

所以现在pretty显然,我们应该做的smthin是这样的:

 的String [] = queryCols新的String [] {_ ID,sampletext};
的String [] = adapterCols新的String [] {sampletext};
INT [] = adapterRowViews新INT [] {} android.R.id.text1;
mycursor = sdb.query(真的,MYTABLE,queryCols,NULL,NULL,NULL,NULL,NULL,NULL);
SCA =新SimpleCursorAdapter(在此,android.R.layout.simple_spinner_item,mycursor,adapterCols,adapterRowViews,0);
sca.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spn.setAdapter(SCA);

I have a db with table "mytable" having 2 colums "id","sampletext" I want to query distinct values of sampletext and feed to a Spinner using SimpleCursorAdapter.

here is what is tried

String[] cols=new String[]{"sampletext"};
int[] lbls=new lbls[]{android.R.id.text1};
mycursor=sdb.query(true,"mytable", cols,null,null,null,null,null,null);
sca=new SimpleCursorAdapter(this, android.R.layout.simple_spinner_item, mycursor, cols,lbls,0);
sca.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spn.setAdapter(sca);

When i run this i get error at line 4 : id does not exist. when i changed first line to "id" the spinner got populated with id values. But i need "sampletext", what am i doing wrong? Appreciate any suggestions

解决方案

what am i doing wrong

you didnt read documentation ...

there are two arrays of string with columns: first in used in query, second one in Adapter constructor(you used only one array for both)

first one tells sqlite which columns should be taken to Cursor, second tells Adapter which ones should be showed/mapped to Views in single row...

Next CursorAdapter needs Cursor with column named _id

So now it's pretty obvious that we should do smthin like this:

String[] queryCols=new String[]{"_id", "sampletext"};
String[] adapterCols=new String[]{"sampletext"};
int[] adapterRowViews=new int[]{android.R.id.text1};
mycursor=sdb.query(true,"mytable", queryCols,null,null,null,null,null,null);
sca=new SimpleCursorAdapter(this, android.R.layout.simple_spinner_item, mycursor, adapterCols, adapterRowViews,0);
sca.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spn.setAdapter(sca);

这篇关于使用SimpleCursorAdapter有微调?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆