#c# #android #xamarin
#c# #Android #xamarin
Вопрос:
Я новичок в Android и xamarin, я хочу добавить listview на свою вкладку, созданную с помощью fragment.
Мой код здесь, это пример кода для xamarin для создания трех вкладок, которые я хочу создать listview в SpeakerFragment:
using System;
using Android.App;
using Android.OS;
using Android.Views;
using Android.Widget;
using System.Collections.Generic;
using Android.Content;
using Android.Runtime;
namespace com.xamarin.example.actionbar.tabs
{
public class SpeakersFragment :Fragment
{
private List<string> mItems;
private ListView mListView;
public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
View view = inflater.Inflate(Resource.Layout.listviewlayout,container,false);
mListView = view.FindViewById<ListView>(Resource.Id.myList);
mItems = new List<string>();
mItems.Add("One");
mItems.Add("Two");
mItems.Add("Three");
mItems.Add("Four");
mItems.Add("Five");
ArrayAdapter<string> adapter = new ArrayAdapter<string>(Context,Android.Resource.Layout.SimpleListItem1, objects: mItems.ToArray());
mListView.Adapter = adapter;
return view;
}
}
public class SessionsFragment : Fragment
{
public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
View view = inflater.Inflate(Resource.Layout.simple_fragment, null);
view.FindViewById<TextView>(Resource.Id.textView1).SetText(Resource.String.sessions_tab_label);
view.FindViewById<ImageView>(Resource.Id.imageView1).SetImageResource(Resource.Drawable.ic_action_sessions);
return view;
}
}
public class WhatsOnFragment : Fragment
{
public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
View view = inflater.Inflate(Resource.Layout.simple_fragment, null);
view.FindViewById<TextView>(Resource.Id.textView1).SetText(Resource.String.whatson_tab_label);
view.FindViewById<ImageView>(Resource.Id.imageView1).SetImageResource(Resource.Drawable.ic_action_whats_on);
return view;
}
}
}
Почему возникает эта ошибка?
‘Context’ — это тип, который недопустим в данном контексте?
Комментарии:
1. Вам нужен экземпляр
Context
, а не тип. Я полагаю, вам нужно что-то вродеnew ArrayAdapter<string>(myContext, Android.Resource.Layout.SimpleListItem1, objects: mItems.ToArray())
wheremyContext
is экземплярContext
.
Ответ №1:
Свойство Fragment.Context
доступно только с уровня API 23. https://developer.android.com/reference/android/app/Fragment.html#getContext ()
Вместо этого вы можете использовать Activity
или Application.Context
. Или установите версию компиляции на уровень API 23, но тогда вы можете столкнуться с некоторыми сбоями в старых версиях Android, если вы также не установите минимальную поддерживаемую версию на 23.
ArrayAdapter<string>(Activity, Android.Resource.Layout.SimpleListItem1, objects: mItems.ToArray())