我有一个微调器,其中包含一些来自 SQLite 数据库的值。当我开始 Activity 时,我想显示微调器的标题“--选择类别--”而不是适配器中的数据。我该怎么做?
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[]{};
}
最佳答案
您必须在字符串数组或数组列表的第一个位置添加“选择类别”字符串。在将其设置为微调器之前。
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);
关于android - 如何为自定义微调器设置默认标题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27540210/