为了账号安全,请及时绑定邮箱和手机立即绑定

如何修复“无法将类型 BaseExpandableListAdapter 隐式转换为

如何修复“无法将类型 BaseExpandableListAdapter 隐式转换为

C#
一只萌萌小番薯 2023-04-29 15:49:35
我正在尝试设置一个自定义可扩展列表视图适配器(继承自 BaseExpandableListAdapter)以用作 Xamarin.Android 中 ExpandableListView 小部件的适配器。我正在使用 Visual Studio 2019 和 Xamarin.Android v28.0.0.1根据这些网站的示例,我得到了一些我认为应该有效的东西。http://www.appliedcodelog.com/2016/06/expandablelistview-in-xamarin-android.html https://gist.github.com/lprichar/904ade6f1aaf96d172436bed3fb24d9b https://www.codeproject.com/Articles/677206/MonoAndroid-Writing-ExpandableListView-amdanswers_fragment.axml<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:orientation="vertical"    android:layout_width="match_parent"    android:layout_height="match_parent">    <ExpandableListView        android:minWidth="25px"        android:minHeight="25px"        android:layout_width="match_parent"        android:layout_height="match_parent"        android:id="@+id/answers" /></LinearLayout>片段.cs    public class AnswersFragment : Fragment    {        private readonly Dictionary<string, bool> answers;        public AnswersFragment(Dictionary<string, bool> answers)        {            this.answers = answers;        }        // Display list of the questions and where answers matched.        public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)        {            View view = inflater.Inflate(Resource.Layout.answers_fragment, container, false);            view.FindViewById<ExpandableListView>(Resource.Id.answers).Adapter = new AnswersListViewAdapter(Context, answers); // This is where the implicit type conversion error occurs            return view;        }    }
查看完整描述

1 回答

?
绝地无双

TA贡献1946条经验 获得超4个赞

为了便于理解,我们可以这样定义变量:


  AnswersListViewAdapter listAdapter;

  ExpandableListView expListView;

并像这样使用:


 public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)

    {


        View view = inflater.Inflate(Resource.Layout.answers_fragment, container, false);

        expListView = view.FindViewById<ExpandableListView>(Resource.Id.answers);

        listAdapter = new AnswersListViewAdapter(Application.Context, answers); // This is where the implicit type conversion error occurs

        expListView.SetAdapter(listAdapter);


        //view.FindViewById<ExpandableListView>(Resource.Id.answers).Adapter = new AnswersListViewAdapter(Context, answers);


        return view;

    }

当然你也可以直接这样使用:


 view.FindViewById<ExpandableListView>(Resource.Id.answers).SetAdapter(new AnswersListViewAdapter(Application.Context, answers));



查看完整回答
反对 回复 2023-04-29
  • 1 回答
  • 0 关注
  • 71 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信