Android 更改自定义适配器中的参数

Android 更改自定义适配器中的参数,android,adapter,Android,Adapter,我有一个带有自定义游标适配器的列表视图。在CursorAdapter的参数之间,我有一个主题,CursorAdapter从传递的主题设置颜色 private MyCustomAdapter mAdapter; public void onCreate(Bundle savedInstanceState) { ListView lv = (ListView)findViewById(R.id.myList); mAdapter = new MyCustomAdapter(

我有一个带有自定义游标适配器的列表视图。在CursorAdapter的参数之间,我有一个主题,CursorAdapter从传递的主题设置颜色

private MyCustomAdapter mAdapter;

public void onCreate(Bundle savedInstanceState) {
    ListView lv = (ListView)findViewById(R.id.myList);
    mAdapter =  new MyCustomAdapter(
        this, 
        R.layout.my_list_row, 
        null, // cursor set later by cursorloader
        mTheme); //int selected theme
    lv.setAdapter(mAdapter);
}
用户可以从首选项更改主题,在onResume()中,我检查主题是否已更改,在本例中,实际上我重复了上述代码,创建了一个新的MyCustomAdapter

我的问题是:我可以使用现有的适配器更改一个参数并更新它吗?例如,当光标更改时,我使用

mAdapter.swapCursor(cursor);

适配器的
getView()
中设置主题, 然后你可以打电话

adapter.notifyDataSetChanged();
活动的
onResume()中
但请确保将主题设置为为为单个行设置视图数据的方式

例如:

public View getView(int position, View convertView, ViewGroup parent) {
      ViewHolder holder = null;
      if (convertView == null) {
           convertView = mInflater.inflate(R.layout.item1, null);
           holder = new ViewHolder();
            convertView.setTag(holder);
      } else {
            holder = (ViewHolder)convertView.getTag();
      }
      // your data for row implementation goes here
      // and also your theme implementation goes here
      // maybe some Method to set Theme
      if(savedTheme == Constants.RED)
            Utils.setTheme(convertView, Constants.RED);
      else
            //Your other themes
      return convertView;
}

setTheme()
可能是
Utils
类中的一个静态方法,用于设置行的文本颜色或背景。或者您也可以在
getView()中设置主题。

在游标适配器()上找不到处理颜色/样式的方法或构造函数。如何将主题传递给游标适配器?我为适配器编写了一个自定义构造函数,以传递用于应用分词主题的int值。