Android ListView项是透明的

Android ListView项是透明的,android,listview,Android,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.i

我正在从数据库中读取一个表,并将其显示在
列表视图中

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中的项目看起来有点透明!(非常浅灰色)

在前面的代码中,它们看起来只是黑色的


为什么会这样?这与放入函数中的代码完全相同。

这是因为在使用静态方法的第二种方法中,您调用了
getAppContext()
来获取上下文,但样式不适用于应用程序上下文

尝试在那里获取另一个上下文,或通过编程方式为应用程序上下文设置主题,如下所示:

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

天才。[这里是一些文字,以达到最小字符数]