मुझे Android.App में FragmentPagerAdapter नहीं मिल रहा है।FragmentPagerAdapter केवल एंड्रॉइड में मौजूद है। समर्थन। V4.App (और Android.App नहीं)
मैं एंड्रॉइड से फ्रैगमेंट का उपयोग नहीं करना चाहता हूं .upport.V4.App, क्योंकि मेरा लक्ष्य एपीआई 14 और उच्चतर (एंड्रॉइड 4.0 और ऊपर) है। तो, मैं सिर्फ एंड्रॉइड के सादे का उपयोग करना चाहता हूं। ऐप। फ्रैगमेंट्स, और वहां कक्षाएं जुड़ी हैं।
मुझे केवल एंड्रॉइड.Support.V4.App के भीतर मिला है, लेकिन यह मेरे लिए पर्याप्त नहीं है b/c मैं एंड्रॉइड का उपयोग करने की कोशिश कर रहा हूं। App.Fragment's (Android.Support.V4.App नहीं फ्रेगमेंट्स) और एंड्रॉइड.एप (एंड्रॉइड.अपपोर्ट.वी 4.एप नहीं) में संबंधित कक्षाएं हैं, और मेरा कोड संकलित नहीं होगा अगर मैं फ्रेगमेंट पेजर एडाप्टर से अपने पेजर को प्राप्त करता हूं, तो अगर इसका समर्थन लाइब्रेरी से परिणामस्वरूप प्रकार के मिलान के कारण है Android.App और Android.Support.V4.App के बीच।
शायद ज़रुरत यहाँ Cannot be cast to android.app.Fragment साथ होता है, एक "सामान्य" पेजर (PagerAdapter) वर्ग मैं FragmentPagerAdapter या कुछ और (आप बस की तरह सामान्य गतिविधि से निकाले जाते हैं, और नहीं FragmentActivity, जब को लक्षित करने के जगह में उपयोग करना चाहिए है एपीआई 11 या उच्चतर)।
यहां नमूना कोड है जिसके साथ मैं काम कर रहा हूं (यह FragmentPagerSupport.cs फ़ाइल है जो https://github.com/xamarin/monodroid-samples/tree/master/Support4 पर मिले मोनोड्रॉइड उदाहरणों से Support4.sln समाधान के भीतर है)।
मैंने एंड्रॉइड.Support.V4.App का संदर्भ देने वाली लाइनों पर टिप्पणी की है और उन्हें कोड के साथ प्रतिस्थापित किया है जो एंड्रॉइड.एप का संदर्भ देता है। एंड्रॉइड के बाहर कोई फ्रेमपैगर एडाप्टर नहीं है। समर्थन। V4.App जो मुझे मिल सकता है, और मुझे वास्तव में इसकी आवश्यकता है)।
धन्यवाद।
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' में है। सुनिश्चित नहीं है कि इससे आपकी मदद मिलेगी, लेकिन ... – PearsonArtPhoto
PearsonArtPhoto सुनिश्चित नहीं है क्योंकि कोई Android.Support.V13 नहीं है। नामस्थान देखें (वैसे भी MonoDroid में)। मैं समर्थन पुस्तकालय का बिल्कुल उपयोग नहीं करना चाहूंगा, लेकिन मुझे अभी तक यह संभव नहीं लगता है। – samosaris
ऐसा लगता है कि ViewPager केवल समर्थन लाइब्रेरी में मौजूद है ... – samosaris