Tôi không thể tìm thấy FragmentPagerAd CHƯƠNG trong Android.App.
Tôi không muốn sử dụng Fragment's từ Android.Support.V4.App, vì API mục tiêu của tôi là 14 trở lên (Android 4.0 trở lên). Vì vậy, tôi muốn chỉ sử dụng đơn giản Android.App.Fragments và có các lớp liên quan.
Tôi chỉ tìm thấy nó trong Android.Support.V4.App, nhưng điều này không đủ cho tôi b / c Tôi đang cố gắng sử dụng Android.App.Fragment's (không phải Android.Support.V4.App.Fragment's) và ở đó các lớp liên quan trong Android.App (không phải Android.Support.V4.App) và mã của tôi sẽ không biên dịch nếu tôi lấy được máy nhắn tin của mình từ FragmentPagerAd CHƯƠNG nếu từ thư viện Hỗ trợ, do loại kết quả không khớp giữa Android.App và Android. .V4.App.
Cũng giống như trường hợp ở đây Không thể chuyển sang android.app.Fragment , có một lớp máy nhắn tin "bình thường" (PagerAd CHƯƠNG) mà tôi nên sử dụng thay cho FragmentPagerAd CHƯƠNG hoặc một cái gì đó (giống như bạn xuất phát từ Hoạt động bình thường và không phải là FragmentActivity, khi nhắm mục tiêu API 11 trở lên).
Đây là mã mẫu mà tôi đang làm việc (tệp FragmentPagerSupport.cs trong giải pháp Support4.sln từ các ví dụ MonoDroid được tìm thấy tại https://github.com/xamarin/monodroid-samples/tree/master/Support4 ).
Tôi đã nhận xét các dòng tham chiếu Android.Support.V4.App và thay thế chúng bằng mã tham chiếu Android.App. Không có FramePagerAd CHƯƠNG ngoài Android.Support.V4. Tôi có thể tìm thấy và tôi thực sự cần nó).
Cảm ơn.
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
. Không chắc điều đó có giúp gì cho bạn không, nhưng ...