[解決済み] Android.Support.V4.Appにのみ存在するFragmentPagerAdapter(Android.Appには存在しない)。
質問
Android.Appの中にFragmentPagerAdapterが見当たらないのですが。
Android.Support.V4.AppのFragmentは使いたくありません。 14以上(Android 4.0以上)です。そこで、Android.App.Fragmentsのプレーンなものだけを使いたいのです。 とそれに関連するクラスです。
Android.Support.V4.Appの中でしか見つけられませんでしたが、これでは十分ではありません。 Android.App.Fragment(Android.Support.V4.App.Fragmentではありません)を使いたいからです。 とAndroid.App(Android.Supp.V4.Appではない)内の関連クラスがあり、私のコードは サポートライブラリのページャーを FragmentPagerAdapter から派生させると、コンパイルされます。 Android.AppとAndroid.Support.V4.Appの間で型の不一致が発生するからです。
ここでのケースと同じように android.app.Fragmentにキャストできません。 ページャー(PagerAdapter)クラスはありますか? をFragmentPagerAdapterに置き換えるか、あるいは何か(通常のActivityから派生し API 11以上をターゲットとする場合、FragmentActivityではありません)。
以下は、私が扱っているサンプルコードです(以下のMonoDroidサンプルにあるSupport4.slnソリューション内のFragmentPagerSupport.csファイル)。 https://github.com/xamarin/monodroid-samples/tree/master/Support4 ).
Android.Supp.V4.Appを参照している行をコメントアウトし、その行を Android.Appを参照するコード。私が見つけたAndroid.Support.V4.App以外のFramePagerAdapterはなく、私は本当にそれを必要とします)。
ありがとうございます。
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
これは、あなたがしたいことをするはずです。これは、非サポートフラグメントのための FragmentPagerAdapter です。
Android Studioのインストール
以下のGradleの依存関係を追加してください。
dependencies {
compile 'com.android.support:support-v13:+'
}
関連
-
NetworkOnMainThreadException
-
java.lang.NullPointerException: NULLオブジェクト参照で仮想メソッド......を呼び出そうとしました。
-
GIF、Lottie、SVGA
-
エラーが発生しました。ArrayAdapter は、リソース ID が TextView である必要があります。
-
ActivityはOnFragmentInteractionListenerを実装しなければならないに関する質問
-
アンドロイドのエリプサイズを使用する
-
Android Get set image.setImageResource(R.drawable.xxx) リソース
-
アンドロイドスタジオ学習入門
-
[解決済み】FragmentPagerAdapterとFragmentStatePagerAdapterの違いは何ですか?
-
[解決済み] Android.app Fragments vs. android.support.v4.app using ViewPager?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
armeabi-v7a armeabi arm64-v8a パラメータの意味説明
-
java.lang.NullPointerException: NULLオブジェクト参照で仮想メソッド......を呼び出そうとしました。
-
android.os の NetworkOnMainThreadException。
-
Android studioのインストールと問題発生、Emulator: PANIC: AVDのシステムパスが見つかりません。
-
プロセス 'command 'F:\sdkbuild-tools', 26.0.2 AAAPT.exe' finished with non-zero exit value 1
-
Android Bluetooth 開発の基本プロセス
-
Androidの美しいSeekBarスタイルのカスタマイズ
-
アンドロイドリストビュー
-
アンドロイドスタジオソフトウェア使用詳細説明書
-
Android Studio http://schemas.android.com/apk/res/android 「URIが登録されていません」の解決方法について