从对象数组中提取字符串数组

时间:2017-05-29 12:40:26

标签: java android sqlite arraylist adapter

所以我有arraylist modelData在一些活动中使用sqlite数据库填充recyclelerview。 现在在我的MainActivity我想要一个来自modelData的字符串arraylist!

到目前为止做了什么..

 // inside the onCreate of MainActivity 

//code ..
db = new DBHandler(this, null, null, 1);
modelData = new ArrayList<AzkarModel>();
modelData = db.getDataFromDB();

for (AzkarModel o : modelData) {
   ArrayList<String> names = new ArrayList<>();
   names.add(o.getName());
}

for (int i = 0; i< modelData.size();i++){
  names.add(modelData.get(i).getName());
 Log.i("The List Log", names);

}

两个问题

1)[FIXED] names arraylist在第一次和结束时两次显示相同的元素

  I/ The List Log: [Mike, John, Sam, Nora, Mike]

2) arraylist names没有更新..!当我从回收站添加/编辑/删除并返回MainActivity我没有看到新的更改,除非我关闭应用程序然后再打开它!我无法使用notifyDataSetChanged,因为此处没有适配器。!

1 个答案:

答案 0 :(得分:2)

获得数组列表对象后,在循环中填充

ArrayList<String> modelNames = new ArrayList<>();

for (AzkarModel model : modelData) {
    modelNames.add(model.getName());
}

现在你有一个包含模型名称的数组列表。关于第二个问题,请使用recyclerview适配器here,您可以找到一个很好的教程。