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

Xamarin Android如何在AlertDialog中实现带自定义适配器的ListView

你触发空引用的核心原因是布局引用搞混了:
你代码里给AlertDialog加载的是Resource.Layout.Filmes,这个布局是你写的ListView单项布局,里面只有三个TextView控件,根本不存在id为filmeslistView的ListView控件,所以ViewAD.FindViewById<ListView>(Resource.Id.filmeslistView)返回null,给null对象的Adapter属性赋值自然触发空引用。

修复步骤:

  1. 修正AlertDialog加载的布局
    把MainActivity里的这行代码:
var ViewAD = LayoutInflater.Inflate(Resource.Layout.Filmes, null);

改为加载你带ListView的主布局即可:

var ViewAD = LayoutInflater.Inflate(Resource.Layout.Main, null);
  1. (可选优化)修改布局命名避免后续混淆
    你现在两个布局的命名很容易搞混,建议重命名:
  • 带ListView的布局(原主布局)改名为FilmesListDialog.axml
  • ListView单项布局改名为FilmeListItem.axml
    修改后后续开发时就不会再出现加载错布局的问题。
  1. (可选修复隐患)补全模拟数据的Id字段
    你FilmesRepositorio里最后一条《Marte》的Filme对象没有赋值Id,虽然不影响当前功能,但后续如果用到Id相关逻辑会出问题,建议补全Id值。

修复后运行就能正常在AlertDialog里展示带自定义适配器的ListView了。

内容的提问来源于stack exchange,提问作者nmend

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.08 10:00:03