2011-08-26 45 views
0

我一直在試圖將微調器綁定到數據庫,並最終成功。我已使用cursoradapter將微調器連接到數據庫表。但問題是微調器被填充,但其中的列表項顯示空白文本。我知道綁定是成功的,因爲它顯示的行數與數據庫表中的記錄數一樣多。 無法弄清楚它是什麼。一些機構請幫我在這裏停留 我張貼下面微調數據連接問題 - 數據綁定成功,但微調顯示空白文本

public long createAccount() { 

    ContentValues initialValues = createContentValues(); 
    Log.i("DB", initialValues.get(KEY_NAME)+":"+ 
      initialValues.get(KEY_MAILBOXTYPE)+":"+ 
      initialValues.get(KEY_OUTPORT)+":"+ 
      initialValues.get(KEY_INPORT)+":"+ 
      initialValues.get(KEY_INSERVER)+":"+ 
      initialValues.get(KEY_OUTSERVER)+":"); 
    return database.insert(DATABASE_TABLE, null, initialValues); 
} 



/** 
* Return a Cursor over the list of all todo in the database 
* 
* @return Cursor over all notes 
*/ 
public Cursor fetchAccount() { 
    Log.i("DB", "Cursor opened"); 

    return database.query(DATABASE_TABLE, new String[] { KEY_ROWID, 
      KEY_NAME,KEY_INSERVER}, null, null, null, 
      null, null); 



} 

代碼的代碼微調結合低於:

   mAccAdap.createAccount(); 

       Cursor c = mAccAdap.fetchAccount();   
       startManagingCursor(c); 
       SimpleCursorAdapter CursorAdapter = new SimpleCursorAdapter(
         this,android.R.layout.simple_spinner_item,c, 
         new String[]{mAccAdap.KEY_INSERVER},new int[]{R.id.tvDBViewRow}); 

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

          spinEmail=(Spinner)findViewById(R.id.spinAccount); 
          spinEmail.setAdapter(CursorAdapter); 

回答

1

試着改變你的SimpleCursorAdapter ...

這部分new int[]{R.id.tvDBViewRow}

對此...

new int[]{android.R.id.text1}

+0

哇。有效。非常感謝。但是你能否也請解釋它背後的原因。 –

+0

這是因爲你用這行'android.R.layout.simple_spinner_item'指定了一個內置的Android模板......在這個模板中有一個id爲「text1」的元素。當您嘗試引用'R.id.tvDBViewRow'時,它不在那裏,因爲該ID不在佈局模板XML中。您當然可以創建自己的佈局XML,以用於此「SimpleCursorAdapter」,然後引用您自己的「TextView」。 – DRiFTy