SORU
21 Kasım 2012, ÇARŞAMBA


FragmentPagerAdapter Android Var.Destek.V4.(Ve Android.App Uygulama)

Yapamam FragmentPagerAdapter Android içinde bulabilirsiniz.App.

Android Parçanın kullanmak istemiyorum.Destek.V4.Benim hedef API olarak uygulaması, 14 ve üstü (Android 4.0 ve yukarısı). Yani, sadece Android düz kullanmak istiyorum.App.Parçaları, ve orada ilişkili sınıflar.

Ben sadece Android içinde bulduk.Destek.V4.App, ama bu yeterli gelmez bana b/c için Android kullanmaya çalışıyorum.App.Parçanın (Android değil.Destek.V4.App.Parça) ve Android içinde dersleri ile ilgili.Uygulaması (Android.Destek.V4.App), ve benim kod alışkanlık eğer Destek kitaplığı eğer onun FragmentPagerAdapter benim çağrı cihazım türetmek,bir derleme çünkü Android arasında elde edilen tür uyuşmazlığı.Uygulaması ve Android.Destek.V4.App.

Konu burada olduğu gibi Cannot be cast to android.app.Fragment, "normal" (PagerAdapter) kullanarak öneri sınıfı çağrı var FragmentPagerAdapter falan yerine normal Aktivite türer gibi (ve FragmentActivity, API 11 veya daha yüksek bir hedef değil).

Burada (FragmentPagerSupport.çalıştığım örnek kodu.cs 4 içinde dosya.MonoDroid örnekleri https://github.com/xamarin/monodroid-samples/tree/master/Support4 de bulunan sln çözüm).

Android başvurulan satırları diye çıkardım.Destek.V4.Ve bunları yerine App başvurular Android kod.App. Android dışında hiçbir FramePagerAdapter var.Destek.V4.Bulabildiğim, ve gerçekten ihtiyaç App).

Teşekkürler.

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);
            }
        }
    }
}

CEVAP
21 Kasım 2012, ÇARŞAMBA


Bunu yapmak istiyorum ne yapmak gerekir android.support.v13.app.FragmentPagerAdapter, içinde bir tane var. Non-destek parçaları için bir FragmentPagerAdapter.

Android Studio Yükleme

Gradle bağımlılıkları ekleyin takip edin

dependencies {
    compile 'com.android.support:support-v13: '
}

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Eric Enge

    Eric Enge

    2 Kasım 2009
  • EvilControllers

    EvilControll

    20 Ocak 2008
  • jat4011

    jat4011

    16 EKİM 2010