【问题标题】:How to get the results from Map in postExecute method of AsyncTask ?如何在 AsyncTask 的 postExecute 方法中从 Map 获取结果?
【发布时间】:2017-01-23 15:38:12
【问题描述】:

如何在 AsyncTask 的 postExecute 方法中获取 Map 的结果?我无法在结果中获取结果?

    @Override
    protected void onPostExecute(Map<String,List<CommentModel>> results) {
        super.onPostExecute(results);
        for(int i=0;i<results.size();i++){
            String ar =results.get(i).get(commentModelList);
           // String content = commentModel.getContent();

            Toast.makeText(getApplicationContext(),"Hello",Toast.LENGTH_LONG).show();
            ExpandableListAdapter expandableListAdapter = new Expandablelistadapter(getApplicationContext(),parentlist,childlist);
            list.setAdapter(expandableListAdapter);



    }
}

【问题讨论】:

标签: android android-asynctask


【解决方案1】:

String ar =results.get(i).get(commentModelList);

应该改为

CommentModel ar =results.get(commentModelList).get(i);

为了避免混淆,未来尝试将每个步骤分成不同的行:

List<CommentModel> resultList = results.get(commentModelList);
CommentModel ar = resultList.get(i);

编辑: 另外,你在哪里关闭你的 for 循环?如果我正确理解您在代码中尝试执行的操作,则您希望遍历从地图获得的列表,而不是遍历地图以获取列表。所以应该更像:

List<CommentModel> resultList = results.get(commentModelList);

for(int i=0;i<resultList.size();i++){
    CommentModel ar = resultList.get(i);

    // use 'ar' in the rest of your code
}

【讨论】:

  • @hiteshchauhan 已编辑。如果编辑中的解决方案不起作用,那么您必须提供有关您正在尝试做什么和更多日志的更多信息
  • ---Android Studio 强制我更改为 CommentModel ar = resultList.get(i);而不是 String ar = resultList.get(i);对吗..?
  • @hiteshchauhan 是的,我错过了。 ar 将是一个 CommentModel
  • 但我仍然没有获取结果
  • @hiteshchauhan 如果没有更多解释或日志,我无法提供更多帮助
猜你喜欢
  • 2018-06-14
  • 1970-01-01
  • 1970-01-01
  • 2017-08-27
  • 1970-01-01
  • 2012-11-05
  • 2023-03-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多