Android 为什么适配器构造函数中的引用未更新?

Android 为什么适配器构造函数中的引用未更新?,android,Android,考虑以下代码: public class MediaItemAdapter extends BaseAdapter { final List<Row> rows; public MediaItemAdapter(Activity activity, ArrayList<HashMap<String, String>> data) { Log.d("mediaadapter", "listcreation: " + data.si

考虑以下代码:

public class MediaItemAdapter extends BaseAdapter {
    final List<Row> rows;
    public MediaItemAdapter(Activity activity, ArrayList<HashMap<String, String>> data) {
        Log.d("mediaadapter", "listcreation: " + data.size());
        rows = new ArrayList<Row>();// member variable
        int i=0;
        for (HashMap<String, String> addvert:data) {

            rows.add(new MeadiaRow((LayoutInflater) activity
                    .getSystemService(Context.LAYOUT_INFLATER_SERVICE), addvert));
            Log.d("mediaadapter", addvert.get("title"));
            if (i % 20 == 0) {
                rows.add(new SourseRow((LayoutInflater) activity
                        .getSystemService(Context.LAYOUT_INFLATER_SERVICE)));
            }
            i++;
        }
    }
公共类MediaItemAdapter扩展了BaseAdapter{
最终列表行;
公共MediaItemAdapter(活动、ArrayList数据){
Log.d(“mediaadapter”,“listcreation:+data.size());
rows=new ArrayList();//成员变量
int i=0;
for(HashMap addvert:data){
行。添加(新的MeadiaRow((LayoutInflater)活动
.getSystemService(Context.LAYOUT_INFLATER_SERVICE),addvert);
Log.d(“mediaadapter”,addvert.get(“title”);
如果(i%20==0){
添加(新资源行((LayoutFlater)活动
.getSystemService(Context.LAYOUT\u flatter\u SERVICE));
}
i++;
}
}
它是我的适配器的构造函数。在每20个MediaRows之后,我希望添加一个源行。它有ArrayList
data
。数据总是空的问题。我根据这个问题构建适配器。在教程中,它工作得很好。但在教程中,初始数据集是预定义的。在我的cade中,初始数据集是空的,并在工作中填充时间。但是,在我调用
notifyDataSetChanged
后,
数据保持为空(即使数据集不是空的)。

如何获取数据的更新值?

必须做的是移动

int i=0;
        for (HashMap<String, String> addvert:data) {

            rows.add(new MeadiaRow((LayoutInflater) activity
                    .getSystemService(Context.LAYOUT_INFLATER_SERVICE), addvert));
            Log.d("mediaadapter", addvert.get("title"));
            if (i % 20 == 0) {
                rows.add(new SourseRow((LayoutInflater) activity
                        .getSystemService(Context.LAYOUT_INFLATER_SERVICE)));
            }
            i++;
        }
inti=0;
for(HashMap addvert:data){
行。添加(新的MeadiaRow((LayoutInflater)活动
.getSystemService(Context.LAYOUT_INFLATER_SERVICE),addvert);
Log.d(“mediaadapter”,addvert.get(“title”);
如果(i%20==0){
添加(新资源行((LayoutFlater)活动
.getSystemService(Context.LAYOUT\u flatter\u SERVICE));
}
i++;
}
从适配器到适配器类中被重写的notifyDataSetChanged检查此解决方案