問題タブ [android-fragments]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - ActionBar.TabListener から DialogFragment を表示する
FragmentDialog
でタブを選択したときにを表示することはできますActionBar
か?
メソッドは、onTabSelected()
メソッドの実行が終了した後にコミットされるトランザクション内で発生します。ただし、 のshow()
メソッドはDialogFragment
トランザクションでも自動的に発生するため、タブが選択されているときにダイアログを表示しようとするとRuntimeException
、トランザクションが 2 回コミットされるため、 が表示されます。
ヒントをいただければ幸いです。
android - 奇妙なフラグメント ライフサイクル エラー
編集
したがって、 myは再初期化を試みる にFragment
保持されているようです。FragmentManager
で破棄されない理由はまだわかりませんActivity
。読み込み中のメッセージは、ListView にアダプタが設定されていない場合に表示されます。ただし、アダプター項目を設定したonCreate
のでonResume
、この読み込み画面が表示される理由がわかりません。この動作の説明はまだ受け付けています
オリジナル
フラグメントをいじっていて、画面の向きを変更すると奇妙なエラーが表示されることに気付きました。ただし、画面の向きが変更されたときにすべてのデータが onCreate で再作成されるため、このエラーは発生しないはずです。また、フラグメントonResume()
はローテーション後に 2 回呼び出されます。エラーを作成するための私の手順と、デバッガーが関数にヒットする方法を次に示します。
- アクティビティ: onCreate()
- アクティビティ: onResume()
- フラグメント: onResume()
- 画面を回転
- アクティビティ: onCreate()
- アクティビティ: onResume()
- Fragment: onResume() (Activity.onResume() で設定してもアイテムは null です)
- フラグメント: onResume() (アイテムは null ではありません。これが 2 回呼び出されるのはなぜですか?)
この最後のフラグメントonResume
がヒットした後、タブレットには「読み込み中...」というメッセージとアイコンが表示されます。データがリストに表示されなくなったのはなぜですか? 私の疑いは、onCreate が 2 番目のフラグメントを作成していることです。最初のフラグメントは、方向がビューを破壊するためにデータを失い、2 番目のフラグメントはデータを取得し、ロード画面はデータ項目のない最初のフラグメントであり、2 番目のフラグメントは非表示になっています。私は間違っているかもしれません。のように画面を回転させたときに破片がすべて破壊されないのはなぜActivity
ですか? この特定の問題を解決しない限り、コードを批判しないでください。私は実際にアプリを作っているのではなく、フラグメント機能を試しています。ありがとう!
主な活動
リストフラグメント
android - 互換性ライブラリを使用した ListFragment のサブクラスでの ClassCastException
これは、3.0 より前のデバイス用の互換性ライブラリを使用している場合にのみ発生します
突き止められないというエラーが表示されます。ListFragment と標準 Fragment を持つ Activity があります。これは、Android Dev Guide の Developers セクションで提供されている例とまったく同じです。
ListFragment サブクラス (関数のオーバーライドなし)
主な活動
MainActivity の XML レイアウト
LogCat からのエラー メッセージ
ERROR/AndroidRuntime: 原因: java.lang.ClassCastException: org.example.ItemListFragment は android.app.Fragment にキャストできません
android - フラグメント内を検索することはできますか?
Honeycomb/Android 3.0 に移植する Android アプリケーションがありFragment
、新しいインターフェイスで s を使用しています。
hereに示すように、ウィジェットを介して検索を行っています。
問題は、s を使用するとウィジェットがポップアップしなくなることFragment
です。問題は、検索をFragment
sで使用するにはどうすればよいかということです。
または、この行を s に置き換えるにはどうすればよいFragment
ですか?
android - Android:あるフラグメントを別のフラグメントに置き換えることはできません
を別のFragment
ものに置き換える必要があります。以下は:のレイヤーファイルです。Activity
Fragment
Activity
そのため、デフォルトでFragAがありますが、アクティビティでFragBに置き換えたいと思います。
しかし、私は例外を得ました:
私に何ができる?
ありがとう!
android - Android Honeycomb、フラグメントのインスタンスを取得しますか?
ヘッダーのxmlファイルを介して2つのフラグメントをロードするPreferenceActivityがあります。
タグやIDを設定できないようです。または、ヘッダーxml内のフラグメントのタグ(loadHeaderFromResource()を使用してロードされます)。
自分でインスタンス化しないのでIDがありません。またはそれを手に入れるための参照。
私は何をしますか?
android - ハニカム フラグメントと AsyncTask
Androidハニカムのフラグメントを作成したいと思います。以前は xml (いくつかのラベルと 2 つのリスト ビュー) から GUI を構築していましたが、API からデータをダウンロードする必要があるため、asynctask が必要でした。メソッドでダウンロード プロセスを開始しますonActivityCreated
。ダウンロードはうまくいきますが、リストビューは更新されません。
試した方法:使用した asynctask コールバックで
次に、リストビューに を使用しfindViewById
ました。アダプターを作成した後、listView.setAdapter()
メソッドを使用しました。この方法は、タブレット android では機能していません。つまり、OS <2.3 です。
誰かがフラグメントのリストビューを更新する方法を知っていますか?
PS:onCreateView
私はただ膨らませたfragment_layout.xml
android - EditText が DialogFragment の状態を復元しない
現在、ビューの一部としていくつかの EditText ウィジェットを持つ DialogFragment があります。方向の変更が発生した場合、EditText ウィジェットはそれらに含まれていたテキストによって再設定されません。
saveInstanceState を調べたところ、向きが変わってもテキストが保持されています。
ダイアログフラグメント:
EditText の例:
Android互換パッケージを使用しています。
android - フラグメント遷移での IllegalStateException
FragmentTransition を使用して空の FrameLayout に新しいフラグメントを追加しようとしていますが、次の例外が引き続き発生します。
デバッグ中に、FrameLayout がそれ自体を独自の子として追加しようとしていることに気付きました。これがこの例外を引き起こしているようです。
フラグメントを追加しようとしているアクティビティの layout.xml ファイルは次のとおりです。
移行を実行しようとしている場所は次のとおりです。
私はあまりにも長い間、この問題に頭を悩ませてきました。ここで何が起こっているかについて手がかりを持っている人はいますか?
android - フラグメントから呼び出すと、DialogFrament ダイアログが間違った順序で表示される
互換性ライブラリを使用してコードを Honeycomb に移植しています。事前に移植されたコードは次のように機能します。アクティビティ A、B、およびダイアログ D1 と D2 があります。B には、別の場所からメッセージを受信するメッセージ ハンドラーがあります。
A は B を呼び出し、B はメッセージ (1) で showDialog を呼び出して D1 を表示します。メッセージ (2) で、ユーザーがまだ D1 を閉じていない場合は、次のコードを使用して閉じられ、D2 が表示されます。
これはうまくいきます。
移植したコードでは、A が Fragment、FB (メッセージ ハンドラを含む) をロードし、D1 と D2 が DialogFragment から派生するようになりました。以下を使用してダイアログが表示されるようにコードを変更しました。
上記のチェックは次の方法で実行されます。
ただし、これは機能しません。何が起こるかというと、最初に D2 が表示され、次に閉じられると D1 が表示されます。これは、上記のチェックが行われたときに D1 が表示されず、D2 がスタックの一番上に追加されるため、最初に表示されるためだと思います (D2 の onCreateView は D1 の前に呼び出されます)。
今、私は無駄にさまざまなことを試しました:
1) トランザクション マネージャーを取得し、D1 がスタック上にあるかどうかを確認して、可視性を確認します。2) 以下を使用してダイアログを表示します。
または追加の代わりに置換/削除を使用する
3) 可視性をチェックするときは、次のことを行います。
現在、3) は、特定の状況 (ダイアログを早期に閉じるなど) でフラグメントが見つからないために、そうでない場合と illegalStateException がスローされる場合を除いて、ある種の作業を行います。
これをどのように修正できるか、または実際にこれについて完全に間違った方法で考えているかどうか、おそらくアクティビティがダイアログのライフサイクルを制御する必要があるかどうかについてのアイデアはありますか? ハニカム前のアプリのアクティビティ B は、FB をロードするラッパー アクティビティになっているため、A と B の両方でライフサイクル管理コードを複製したくないことに注意してください。
前もって感謝します。ピーター。