You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Android Activity中通过Parse将关联数据展示到ListView?

解决Android中Parse关联数据展示到ListView的问题

我看你已经能通过Parse Query获取到关联的评论数据了,但目前的问题是没有把获取到的真实数据更新到ListView的数据源里,所以调用adapter.notifyDataSetChanged()也不会有效果。下面是具体的修改方案:

核心问题分析

你的代码里初始化了测试用的list数据,但在Parse Query成功拿到commentList后,并没有把这些真实数据替换掉原来的测试数据,适配器的数据源还是旧的,自然不会更新UI。

修改后的完整代码

final ListView listview = (ListView) findViewById(R.id.lvComentario); 
final ArrayList<String> list = new ArrayList<String>(); 
// 先初始化适配器,这里可以先留空或者放默认提示文本
final StableArrayAdapter adapter = new StableArrayAdapter(this, android.R.layout.simple_list_item_1, list); 
listview.setAdapter(adapter); 

comentario = (EditText) findViewById(R.id.text_comentario); 
botaoSalvar = (Button) findViewById(R.id.button_salvar); 

Intent i = getIntent(); 
obID = i.getStringExtra("imagem"); 

ParseQuery<ParseObject> query = ParseQuery.getQuery("comentario"); 
query.whereEqualTo("parentesco", obID); 
query.findInBackground(new FindCallback<ParseObject>() { 
    public void done(List<ParseObject> commentList, ParseException e) { 
        if (e == null) { 
            // 清空旧的测试数据
            list.clear();
            // 遍历Parse返回的评论列表,提取需要展示的内容
            for (ParseObject comment : commentList) {
                // 注意:这里的"comentario_conteudo"要替换成你Parse表中存储评论内容的真实字段名
                String commentContent = comment.getString("comentario_conteudo");
                if (commentContent != null) {
                    list.add(commentContent);
                }
            }
            Log.d("score", "成功获取到" + commentList.size() + "条评论");
        } else { 
            Log.w("Parse query", "获取评论失败:" + e.getMessage()); 
        }
        // 通知适配器数据已更新,刷新ListView
        adapter.notifyDataSetChanged(); 
    } 
});

关键修改点说明

  • 清空旧数据源:在添加新数据前调用list.clear(),避免测试数据和真实数据混在一起
  • 提取Parse数据:遍历commentList,从每个ParseObject中取出你需要展示的字段值(一定要替换成你自己的字段名,比如如果你的评论内容存在"texto"字段,就用comment.getString("texto"))
  • 通知适配器更新:在处理完数据后调用adapter.notifyDataSetChanged(),让ListView重新加载数据

另外,记得确保你的StableArrayAdapter是正确继承自ArrayAdapter的,这样它才能正确绑定ArrayList<String>作为数据源。

内容的提问来源于stack exchange,提问作者Edson Luiz Nascimento

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 06:39:01