タグ付けされた質問 「android-fragments」

フラグメントは、Androidアプリの再利用可能な動作またはユーザーインターフェースの一部を表します。

7
FragmentPagerAdapterとFragmentStatePagerAdapterの違いは何ですか?
違いは何であるFragmentPagerAdapterとはFragmentStatePagerAdapter? FragmentPagerAdapterGoogleのガイドについて言う: このバージョンのページャーは、一連のタブなど、ページングされる一般的に静的なフラグメントがいくつかある場合に最適です。ユーザーがアクセスする各ページのフラグメントはメモリに保持されますが、ビューの階層は表示されない場合は破棄される可能性があります。これにより、フラグメントインスタンスが任意の量の状態を保持できるため、大量のメモリを使用する可能性があります。より大きなページセットについては、を検討してくださいFragmentStatePagerAdapter。 そして約FragmentStatePagerAdapter: このバージョンのページャーは、ページ数が多く、リストビューのように機能する場合により便利です。ページがユーザーに表示されない場合、フラグメント全体が破棄され、そのフラグメントの保存された状態のみが維持されます。これにより、ページャーは、ページをFragmentPagerAdapter切り替えるときにオーバーヘッドが増える可能性があるという犠牲を払って、訪問した各ページに関連付けられているメモリをはるかに少なく抑えることができ ます。 だから私はたった3つの断片を持っています。しかし、それらはすべて、大量のデータを持つ個別のモジュールです。 Fragment1(ユーザーが入力する)いくつかのデータを処理しFragment2、アクティビティを介してに渡しListFragmentます。これは単純です。Fragment3もListFragmentです。 だから私の質問は:どのアダプターを使うべきですか?FragmentPagerAdapterまたはFragmentStatePagerAdapter?

5
フラグメントのsetRetainInstance(boolean)を理解する
ドキュメントから始める: public void setRetainInstance(ブール保持) アクティビティの再作成(構成の変更など)を通じてフラグメントインスタンスを保持するかどうかを制御します。これは、バックスタックにないフラグメントでのみ使用できます。設定されている場合、アクティビティが再作成されるときのフラグメントのライフサイクルは少し異なります。 onDestroy()は呼び出されません(ただし、フラグメントが現在のアクティビティから切り離されているため、onDetach()は呼び出されます)。 フラグメントが再作成されていないため、onCreate(Bundle)は呼び出されません。 onAttach(Activity)とonActivityCreated(Bundle)は引き続き呼び出されます。 いくつか質問があります。 フラグメントはそのビューも保持しますか、それとも構成の変更時に再作成されますか?「保持」とはどういう意味ですか? ユーザーがアクティビティを離れると、フラグメントは破棄されますか? バックスタックのフラグメントで動作しないのはなぜですか? この方法を使用することが理にかなっている使用例はどれですか?

23
重複するID、タグnull、またはcom.google.android.gms.maps.MapFragmentの別のフラグメントを持つ親ID
3つのタブを持つアプリケーションがあります。 各タブには、独自のレイアウト.xmlファイルがあります。main.xmlには独自のマップフラグメントがあります。これは、アプリケーションが最初に起動したときに表示されるものです。 タブを切り替えるときを除いて、すべてが正常に機能します。マップフラグメントタブに切り替えようとすると、このエラーが発生します。他のタブへの切り替えや他のタブへの切り替えは問題なく動作します。 ここで何が悪いのでしょうか? これは私のメインクラスとmain.xml、および私が使用する関連クラスです(下部にもエラーログがあります)。 メインクラス package com.nfc.demo; import android.app.ActionBar; import android.app.ActionBar.Tab; import android.app.Activity; import android.app.Fragment; import android.app.FragmentTransaction; import android.os.Bundle; import android.widget.Toast; public class NFCDemoActivity extends Activity { public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); ActionBar bar = getActionBar(); bar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); bar.setDisplayOptions(0, ActionBar.DISPLAY_SHOW_TITLE); bar.addTab(bar .newTab() .setText("Map") .setTabListener( new TabListener<MapFragment>(this, "map", MapFragment.class))); bar.addTab(bar …


10
Android Fragment onAttach()は廃止予定
最新のサポートライブラリ(バージョン23.0.0)を使用するようにアプリを更新しましたが、FragmentクラスのonAttach()関数が廃止されていることがわかりました。 の代わりに: onAttach (Activity activity) 雪が降る: onAttach (Context context) 私のアプリはサポート終了前に渡されたアクティビティを使用しているため、考えられる解決策は次のとおりです。 @Override public void onAttach(Context context) { super.onAttach(context); activity = getActivity(); } それはそれを行う正しい方法でしょうか? 更新: 23未満のAPIでデバイスを実行すると、新しいonAttach()が呼び出されていません。これが彼らが意図したことではないことを願っています! 更新2: SDKの最新のアップデートで問題が解決されました。 API 22デバイスでテストしましたが、onAttach(Context)が呼び出されています。 クリックここで私は数週間前にオープンしましたバグレポートとGoogleのみんなからの回答に従うこと。

13
フラグメントからアクティビティメソッドを呼び出す
フラグメントから私のアクティビティのメソッドを呼び出そうとしています。フラグメントがメソッドデータを提供し、メソッドが戻るときにデータを取得する必要があります。静的メソッドの呼び出しと同様に達成したいのですが、アクティビティで問題が発生するため、静的メソッドを使用しません。 フラグメントが初めてなので、簡単で教育的な説明が必要です。 ありがとう!

20
ViewPagerを動的に更新しますか?
ViewPagerでコンテンツを更新できません。 FragmentPagerAdapterクラスのメソッドinstantiateItem()およびgetItem()の正しい使用法は何ですか? 私はgetItem()だけを使用してフラグメントをインスタンス化して返していました: @Override public Fragment getItem(int position) { return new MyFragment(context, paramters); } これはうまくいきました。内容を変更できない以外は。 だから私はこれを見つけました:ViewPager PagerAdapterがビューを更新していません 「私のアプローチは、instantiateItem()メソッドでインスタンス化されたビューにsetTag()メソッドを使用することです」 これを行うために、instantiateItem()を実装したいと思います。しかし、私は何を返さなければならないのか(タイプはObjectです)、そしてgetItem(int position)との関係は何ですか? リファレンスを読んだ: public abstract Fragment getItem(int position) 指定された位置に関連付けられたフラグメントを返します。 public Object instantiateItem(ViewGroupコンテナー、int位置) 指定された位置にページを作成します。アダプターは、ここで指定されたコンテナーにビューを追加する必要がありますが、finishUpdate(ViewGroup)から戻るまでにこれが確実に行われるようにする必要があります。パラメーター コンテナーページが表示されるコンテナーを含むビュー。positionインスタンス化されるページの位置。 戻り値 新しいページを表すオブジェクトを返します。これはビューである必要はありませんが、ページの他のコンテナにすることができます。 まだ分​​かりません。 これが私のコードです。サポートパッケージv4を使用しています。 ViewPagerTest public class ViewPagerTest extends FragmentActivity { private ViewPager pager; private MyFragmentAdapter adapter; @Override …

20
Androidでアクティビティからフラグメントにデータを送信する
2つのクラスがあります。1つはアクティビティ、2つ目はフラグメントがあるフラグメントEditTextです。アクティビティでは、async-taskを持つサブクラスがあり、メソッドdoInBackgroundでは、結果を変数に保存します。この変数をサブクラス「my activity」からこのフラグメントに送信するにはどうすればよいですか?

6
onActivityResultの間違ったrequestCode
私は私のフラグメントから新しい活動を始めています startActivityForResult(intent, 1); フラグメントの親アクティビティで結果を処理したい場合: @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { Log.d(TAG, "onActivityResult, requestCode: " + requestCode + ", resultCode: " + resultCode); if (requestCode == 1) { // bla bla bla } } 問題は、requestCode投稿したばかりのメールが届かなかったことstartActivityForResult()です。 私のようなものだ0x40001、0x20001ランダム上位ビットがセットされたなど。ドキュメントはこれについて何も言わない。何か案は?

9
add()、replace()、およびaddToBackStack()の違い
これらのメソッドの呼び出しの主な違いは何ですか? fragmentTransaction.addToBackStack(name); fragmentTransaction.replace(containerViewId, fragment, tag); fragmentTransaction.add(containerViewId, fragment, tag); 既存のフラグメントを置き換え、フラグメントをアクティビティ状態に追加し、アクティビティをバックスタックに追加するとはどういう意味ですか? 次に、でfindFragmentByTag()、このメソッドはadd()/ replace()メソッドまたはメソッドによって追加されたタグを検索しaddToBackStack()ますか?

30
AndroidフラグメントIDのビューが見つかりませんか?
ビューに追加しようとしているフラグメントがあります。 FragmentManager fragMgr=getSupportFragmentManager(); feed_parser_activity content = (feed_parser_activity)fragMgr .findFragmentById(R.id.feedContentContainer); FragmentTransaction xaction=fragMgr.beginTransaction(); if (content == null || content.isRemoving()) { content=new feed_parser_activity(item.getLink().toString()); xaction .add(R.id.feedContentContainer, content) .setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN) .addToBackStack(null) .commit(); Log.e("Abstract", "DONE"); } このコードを実行すると、デバッグで次のエラーが発生します。 java.lang.IllegalArgumentException: No view found for id 0x7f080011 for fragment feed_parser_activity{41882f50 #2 id=0x7f080011} feed_parser_activityxmlのフラグメントレイアウトに設定されたフラグメントです。 FragmentActivityを使用して、を保持するフラグメントレイアウトをホストしていfeed_parser_layoutます。 これを上で正しくコーディングしていますか?

12
別のフラグメントの問題のフラグメント
1つのフラグメント(#77000000背景付きのフルスクリーン)を別のフラグメント(メインと呼ぶ)の上に表示しても、メインフラグメントはクリックに反応します(表示されていなくてもボタンをクリックできます)。 質問:最初の(メイン)フラグメントのクリックを防ぐ方法は? 編集 残念ながら、2番目のフラグメントに透明な背景を使用しているため、メインフラグメントを非表示にすることはできません(そのため、ユーザーは背後にあるものを確認できます)。

18
ViewPager内のフラグメントを置き換える
を使用してフラグメントを使用しようとしViewPagerていFragmentPagerAdapterます。私が達成しようとしているのは、の最初のページに配置されたフラグメントViewPagerを別のフラグメントに置き換えることです。 ページャーは2つのページで構成されています。1つ目は、FirstPagerFragment2つ目はSecondPagerFragmentです。最初のページのボタンをクリックする。をFirstPagerFragmentNextFragmentに置き換えます。 以下に私のコードがあります。 public class FragmentPagerActivity extends FragmentActivity { static final int NUM_ITEMS = 2; MyAdapter mAdapter; ViewPager mPager; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.fragment_pager); mAdapter = new MyAdapter(getSupportFragmentManager()); mPager = (ViewPager) findViewById(R.id.pager); mPager.setAdapter(mAdapter); } /** * Pager Adapter */ public static class MyAdapter extends FragmentPagerAdapter { public …

9
Activity、AppCompatActivity、FragmentActivity、およびActionBarActivity:いつどちらを使用するか?
私はiOSから来ており、簡単で、UIViewControllerを使用するだけです。ただし、Androidでは、特定のAPIレベルに対応する特定のUIComponentがあるため、状況ははるかに複雑に見えます。私はBigNerdRanch for Android(この本は約2年前のものです)を読んでいます。Activity、をホストためするていFragmentActivitiesます。しかし、私Activityは非難されたと思いました。 それで、APIレベル22(APIレベル15または16の最小サポートあり)の場合、コンポーネントのホストとコンポーネント自体の両方に正確に何を使用する必要がありますか?これらすべての用途はありますか、それとも1つまたは2つをほぼ独占的に使用する必要がありますか?


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.