2015-06-07 57 views
0

我讀表從數據庫中,並在ListView提出它:ListView的項目是透明

Cursor cities = db.getTableData(DBTable.CITY, columns); 
cityListAdapter = new SimpleCursorAdapter(getContext(), 
     android.R.layout.simple_list_item_1, 
     cities, 
     columns, 
     new int[] {android.R.id.text1},0); 
citiesListView.setAdapter(cityListAdapter); 

這工作得很好。

但因爲我要使用此代碼多次,我決定做一個函數出來的:

Cursor cities = db.getTableData(DBTable.CITY, columns); 
cityListAdapter = MyDatabase.fillAdapter(cities,columns); 
public static ListAdapter fillAdapter(Cursor cursor,String[] columns) 
{ 
    return (new SimpleCursorAdapter(MainApplication.getAppContext(), 
      android.R.layout.simple_list_item_1, 
      cursor, 
      columns, 
      new int[] {android.R.id.text1},0)); 
} 

它的工作原理,但在ListView中的項目看起來有點透明! (非常淺灰色)。

在上面的代碼它們看起來只是黑色的。

這究竟是爲什麼?這是一個功能完全相同的代碼。

回答

2

這是因爲在你與你的靜態方法第二種方法調用getAppContext()讓你的背景,但風格不與應用程序環境中工作。

嘗試獲取另一個上下文有或編程設置你的應用程序上下文主題類似的:

getApplicationContext().setTheme(R.style.MyTheme); 
+0

天才。 [這裏有一些文字來達到最小字符數] –