Je ne trouve pas FragmentPagerAdapter dans Android.App.
Je ne souhaite pas utiliser les fragments d'Android.Support.V4.App, car mon API cible est de 14 et plus (Android 4.0 et plus). Donc, je veux simplement utiliser Android.App.Fragments, et les classes associées.
Je ne l'ai trouvé que dans Android.Support.V4.App, mais cela ne me suffit pas car j'essaie d'utiliser Android.App.Fragment (pas Android.Support.V4.App.Fragment's) et là classes associées dans Android.App (pas Android.Support.V4.App), et mon code ne sera pas compilé si je dérive mon pager de FragmentPagerAdapter s'il provient de la bibliothèque de support, en raison de l'incompatibilité de type qui en résulte entre Android.App et Android.Support .V4.App.
Tout comme dans le cas ici Ne peut pas être converti en android.app.Fragment , y a-t-il une classe de pager "normal" (PagerAdapter) que je devrais utiliser à la place de FragmentPagerAdapter ou quelque chose (tout comme vous dérivez de l'activité normale, et non de FragmentActivity, lorsque vous ciblez l'API 11 ou une version ultérieure).
Voici l'exemple de code avec lequel je travaille (c'est le fichier FragmentPagerSupport.cs dans la solution Support4.sln à partir des exemples MonoDroid trouvés à https://github.com/xamarin/monodroid-samples/tree/master/Support4 ).
J'ai commenté les lignes faisant référence à Android.Support.V4.App et les ai remplacées par du code faisant référence à Android.App. Il n'y a pas de FramePagerAdapter en dehors d'Android.Support.V4.App que je pourrais trouver, et j'en ai vraiment besoin).
Merci.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Android.App;
using Android.Content;
using Android.OS;
using Android.Runtime;
using Android.Views;
using Android.Widget;
//using Android.Support.V4.App;
//using Android.Support.V4.View;
namespace Support4
{
[Activity (Label = "@string/fragment_pager_support")]
[IntentFilter (new[]{Intent.ActionMain}, Categories = new[]{ "mono.support4demo.sample" })]
//public class FragmentPagerSupport : FragmentActivity
public class FragmentPagerSupport : Activity
{
const int NUM_ITEMS = 10;
MyAdapter adapter;
ViewPager pager;
protected override void OnCreate (Bundle bundle)
{
base.OnCreate (bundle);
SetContentView(Resource.Layout.fragment_pager);
//adapter = new MyAdapter(SupportFragmentManager);
adapter = new MyAdapter(FragmentManager);
pager = FindViewById<ViewPager>(Resource.Id.pager);
pager.Adapter = adapter;
var button = FindViewById<Button>(Resource.Id.goto_first);
button.Click += (sender, e) => {
pager.CurrentItem = 0;
};
button = FindViewById<Button>(Resource.Id.goto_last);
button.Click += (sender, e) => {
pager.CurrentItem = NUM_ITEMS - 1;
};
}
// ?????????????????????????????????????????????????
// - where is FragmentPagerAdapter
// ?????????????????????????????????????????????????
protected class MyAdapter : FragmentPagerAdapter
{
public MyAdapter(FragmentManager fm) : base(fm)
{
}
public override int Count {
get {
return NUM_ITEMS;
}
}
public override Fragment GetItem (int position)
{
return new ArrayListFragment(position);
}
}
protected class ArrayListFragment : ListFragment
{
int num;
public ArrayListFragment()
{
}
public ArrayListFragment(int num)
{
var args = new Bundle();
args.PutInt("num", num);
Arguments = args;
}
public override void OnCreate (Bundle p0)
{
base.OnCreate (p0);
num = Arguments != null ? Arguments.GetInt("num") : 1;
}
public override View OnCreateView (LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
var v = inflater.Inflate(Resource.Layout.fragment_pager_list, container, false);
var tv = v.FindViewById<TextView>(Resource.Id.text);
tv.Text = "Fragment #" + num;
return v;
}
public override void OnActivityCreated (Bundle p0)
{
base.OnActivityCreated (p0);
ListAdapter = new ArrayAdapter<string>(Activity, Android.Resource.Layout.SimpleListItem1, Cheeses.cheeseStrings);
}
public override void OnListItemClick(ListView l, View v, int position, long id) {
Console.WriteLine ( "Item clicked: " + id);
}
}
}
}
android.support.v13.app.FragmentPagerAdapter
. Je ne sais pas si cela vous aidera, mais ...