我有一个带有SQLite数据库中某些值的微调器。当我开始活动时,我想显示微调器的标题“--Select Category--”而不是适配器中的数据。我怎么能这样做?
String[] data = ndbHandler.getAllLabels();
adapter = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item, data);
// Drop down layout style - list view with radio button
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
// attaching data adapter to spinner
spinCat.setAdapter(adapter);
这是ndbHandler数据库类
public String[] getAllLabels(){
Cursor cr=this.sDB.query(TABLE_LABELS, new String[] {KEY_NAME}, null, null, null, null, null);
if(cr.getCount() >0)
{
String[] str = new String[cr.getCount()];
int i = 0;
while (cr.moveToNext())
{
str[i] = cr.getString(cr.getColumnIndex(KEY_NAME));
i++;
}
return str;
}
else
{
return new String[]{};
}
答案 0 :(得分:1)
你必须添加&#34;选择类别&#34;字符串数组或arraylist中第一个位置的字符串。在将它设置为微调器之前。
String[] SpinnerItem=new String[]{"Select Category","First","Second","Third"};
对于ArrayList -
ArrayList<String> mArrayList=new ArrayList<String>();
mArrayList=getDataFromSqlite();// retrieve your data first.
mArrayList.add(0,"Select Category");
您的数据库代码 -
public ArrayList<String> getAllLabels(){
ArrayList<String> mArrayList=new ArrayList<String>();
Cursor c=this.sDB.query(TABLE_LABELS, new String[] {KEY_NAME}, null, null, null, null, null);
if(c != null){
if (c.moveToFirst()){
do{
mArrayList.add(cr.getString(cr.getColumnIndex(KEY_NAME)));
}while(c.moveToNext());
}
}
return mArrayList;
}
设置微调器 -
ArrayList<String> data = ndbHandler.getAllLabels();
data.add(0,"Select Category");
adapter = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item, data);
// Drop down layout style - list view with radio button
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
// attaching data adapter to spinner
spinCat.setAdapter(adapter);
答案 1 :(得分:0)
这里我尝试将Select Category
添加为带有标签
String[] allLables = ndbHandler.getAllLabels();
String[] data = new String[allLables.length + 1];
data[0] = "Select Category";
System.arraycopy(allLabels, 0, data, 1, allLabels.length);
adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_spinner_item, data );
// Drop down layout style - list view with radio button
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
// attaching data adapter to spinner
spinCat.setAdapter(adapter);
或者你可以使用
String[] data = ndbHandler.getAllLabels();
ArrayList<String> list =new ArrayList<String>( Arrays.asList( data ) );
list.add(0, "Select Category");
adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_spinner_item, list );
// Drop down layout style - list view with radio button
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
// attaching data adapter to spinner
spinCat.setAdapter(adapter);
答案 2 :(得分:0)
你可以这样做:
String[] allLabels = ndbHandler.getAllLabels();
String[] data = new String[allLables.length + 1];
data[0] = "--Select Category--";
System.arraycopy(allLabels, 0, data, 1, allLabels.leng);
然后将数据[]传递给适配器。
答案 3 :(得分:0)
this in done in your database class
public ArrayList<String> arrayList getAllLabels()
{
Cursor cr=this.sDB.query(TABLE_LABELS, new String[] {KEY_NAME}, null, null, null, null, null);
ArrayList<String> temparrayList = new ArrayList<String>();
temparrayList.add("--Select Category--");
if (cr.moveToFirst())
{
do
{
temparrayList.add(cr.getString(cr.getColumnIndex(KEY_NAME)));
}
while (cursor.moveToNext());
}
return temparrayList;
}
this is done in your Activity
ArrayList<String> data= ndbHandler.getAllLabels();
dapter = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item, data);
// Drop down layout style - list view with radio button
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
// attaching data adapter to spinner
spinCat.setAdapter(adapter);