2012-05-23 37 views
2

我剛使用Eclipse創建的Android應用程序,並且一切正常,然而,當我點擊微調,提示似乎空,但價值在那裏,因爲我可以選擇他們,是什麼我可以做些什麼讓他們可見?它在模擬器中工作,但不在電話上,謝謝!提示不顯示的項目

空白廣場的提示和值是有! :S

String sqlSelect = "SELECT id, name, password FROM password"; 
    Cursor c = db.rawQuery(sqlSelect, null);    


    Spinner sp1 = (Spinner)findViewById(R.id.spinner1); 
    ArrayAdapter<String> ad = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item); 
    ad.setDropDownViewResource(android.R.layout.simple_spinner_item); 
    sp1.setAdapter(ad);   

    System.out.println("Total of records is:" + c.getCount()); 

    if(c.moveToFirst()){ 
     int i = 0; 

     while(c.moveToNext()){ 
      ad.add(c.getString(c.getColumnIndex("name")));    
      i++; 
     } 
    }   

佈局:

<Spinner 
    android:id="@+id/spinner1" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" > 
    <!-- Preview: [email protected]:layout/simple_spinner_item --> 
</Spinner> 

這裏有一個形象:

http://img163.imageshack.us/img163/659/cap201205222344.jpg

+0

能否請您發佈您的代碼和XML佈局文件? –

+0

已添加代碼!謝謝! – saman0suke

回答

1

我最終使用從子類我ArrayAdapter,根據一個例子,我發現:

ArrayAdapter<String> ad = new ArrayAdapter<String>(this,  android.R.layout.simple_spinner_item){ 
     @Override 
     public View getDropDownView(int position, View convertView, ViewGroup parent) { 
      View view = super.getDropDownView(position, convertView, parent); 

      TextView text = (TextView)view.findViewById(android.R.id.text1); 
      text.setTextColor(Color.BLUE); 

      return view; 
     }   
    }; 

現在我可以看到的項目,但我仍然不知道爲什麼,我可以看到在模擬器上,但項目非手機本身...謝謝!

0

你可以使用notifyDataSetChanged()這應該引起微調的重繪。

if(c.moveToFirst()){ 
    int i = 0; 
    while(c.moveToNext()){ 
     ad.add(c.getString(c.getColumnIndex("name")));     
     i++; 
} 
ad.notifyDataSetChanged(); 
1

在你的投稿圖像的微調正顯示出某些行指從數據庫中取它的值,但是你必須改變微調項目的背景顏色。

文字大小和背景大小,所以你無法查看微調視圖中的文本,以嘗試使用自定義適配器創建微調或改變微調​​項目都是白色:

ad.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);