如何为自定义微调器设置默认标题?

时间:2014-12-18 06:09:05

标签: android header spinner default title

我有一个带有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[]{};
    }

4 个答案:

答案 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数组中的第一个元素
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);