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

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

4
フラグメントには本当に空のコンストラクタが必要ですか?
私Fragmentは複数の引数を取るコンストラクターを持っています。私のアプリは開発中には問題なく動作しましたが、本番環境ではユーザーにこのクラッシュが発生することがあります。 android.support.v4.app.Fragment$InstantiationException: Unable to instantiate fragment make sure class name exists, is public, and has an empty constructor that is public このエラーメッセージが示すように、空のコンストラクターを作成することもできますが、それでは、別のメソッドを呼び出しての設定を完了する必要があるため、意味がありませんFragment。 なぜこのクラッシュがたまにしか起こらないのか知りたいです。多分私はViewPager間違って使用していますか?すべてFragmentのを自分でインスタンス化し、内のリストに保存しますActivity。私が見FragmentManagerたViewPager例はそれを必要とせず、開発中にすべてが機能しているように見えたので、私はトランザクションを使用しません。


14
フラグメントを使用してバックスタックをクリアする
Androidアプリをハニカムに移植し、フラグメントを使用するために大きなリファクタリングを行いました。以前のバージョンでは、ホームボタンを押すとACTIVITY_CLEAR_TOP、バックスタックをリセットするためにaを使用していました。 これで、私のアプリは複数のフラグメントを持つ単一のアクティビティになりました。ホームボタンを押すと、その中のフラグメントの1つを置き換えるだけです。どのように私は使用せずに私の背中スタックをクリアできるstartActivityとACTIVITY_CLEAR_TOPフラグ?


7
プログラムで作成されたコンテンツビューでアクティビティにフラグメントを追加するにはどうすればよいですか
プログラムでレイアウトを実装するアクティビティにフラグメントを追加したいと思います。私はフラグメントのドキュメントを調べましたが、必要なものを説明する例は多くありません。これが私が書こうとしたコードのタイプです: public class DebugExampleTwo extends Activity { private ExampleTwoFragment mFragment; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); FrameLayout frame = new FrameLayout(this); if (savedInstanceState == null) { mFragment = new ExampleTwoFragment(); FragmentTransaction ft = getFragmentManager().beginTransaction(); ft.add(frame.getId(), mFragment).commit(); } setContentView(frame); } } ... public class ExampleTwoFragment extends Fragment { @Override public …

12
DialogFragmentから結果を受け取る
DialogFragmentsを使用して、リストから項目を選択したり、テキストを入力したりしています。 値(つまり、リストからの文字列または項目)を呼び出しアクティビティ/フラグメントに戻す最良の方法は何ですか? 現在、私は呼び出しアクティビティを実装DismissListenerし、DialogFragmentにアクティビティへの参照を与えています。次に、Dialog OnDimissがアクティビティのメソッドを呼び出し、アクティビティがDialogFragmentオブジェクトから結果を取得します。非常に乱雑で、DialogFragmentがアクティビティへの参照を失うため、構成の変更(方向の変更)では機能しません。 助けてくれてありがとう。


11
プログラムでバックスタックの前のフラグメントに戻る
プログラムでフラグメントが追加されたアクティビティがあるとします。 private void animateToFragment(Fragment newFragment, String tag) { FragmentTransaction ft = getFragmentManager().beginTransaction(); ft.replace(R.id.fragment_container, newFragment, tag); ft.addToBackStack(null); ft.commit(); } 表示されていた前のフラグメントに戻る最良の方法は何ですか? Androidのボタンクリックでトリガーバックボタン機能を見つけましたが、バックキーイベントをシミュレートすることはそれを回避するための適切な方法ではないと思います(それを機能させることもできません)。 dispatchKeyEvent(new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_BACK)); 電話をかけるfinish()だけで、興味のないアクティビティが閉じられます。 これについてより良い方法はありますか?

30
ビューページャーで現在のFragmentインスタンスを取得する
以下は、3 Fragment classesの3つのタブそれぞれに埋め込まれたコードViewPagerです。メニューオプションがあります。に示すように、onOptionsItemSelected()オプションを選択して、現在表示されているフラグメントを更新する必要があります。これを更新するには、フラグメントクラスにあるメソッドを呼び出す必要があります。誰かがそのメソッドを呼び出す方法を提案できますか? public class MainActivity extends ActionBarActivity { ViewPager ViewPager; TabsAdapter TabsAdapter; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); ViewPager = new ViewPager(this); ViewPager.setId(R.id.pager); setContentView(ViewPager); final ActionBar bar = getSupportActionBar(); bar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); //Attaching the Tabs to the fragment classes and setting the tab title. TabsAdapter = new TabsAdapter(this, ViewPager); TabsAdapter.addTab(bar.newTab().setText("FragmentClass1"), …

8
アンドロイド。フラグメントgetActivity()がnullを返すことがある
開発者コンソールのエラーレポートで、NPEの問題があるレポートが表示されることがあります。コードの何が問題なのか理解できません。エミュレーターと私のデバイスアプリケーションはforceclosesなしで正常に動作しますが、一部のユーザーは、getActivity()メソッドが呼び出されたときにフラグメントクラスでNullPointerExceptionを受け取ります。 アクティビティ pulic class MyActivity extends FragmentActivity{ private ViewPager pager; private TitlePageIndicator indicator; private TabsAdapter adapter; @Override public void onCreate(Bundle savedInstanceState) { pager = (ViewPager) findViewById(R.id.pager); indicator = (TitlePageIndicator) findViewById(R.id.indicator); adapter = new TabsAdapter(getSupportFragmentManager(), false); adapter.addFragment(new FirstFragment()); adapter.addFragment(new SecondFragment()); indicator.notifyDataSetChanged(); adapter.notifyDataSetChanged(); // push first task FirstTask firstTask = new FirstTask(MyActivity.this); …


18
フラグメントonResume()およびonPause()がバックスタックで呼び出されない
アクティビティ内に複数のフラグメントがあります。ボタンをクリックすると、新しいフラグメントが開始され、バックスタックに追加されます。私は当然onPause()、現在のFragmentとonResume()新しいFragment のメソッドが呼び出されることを期待していました。まあそれは起こっていません。 LoginFragment.java public class LoginFragment extends Fragment{ @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { final View view = inflater.inflate(R.layout.login_fragment, container, false); final FragmentManager mFragmentmanager = getFragmentManager(); Button btnHome = (Button)view.findViewById(R.id.home_btn); btnHome.setOnClickListener(new View.OnClickListener() { public void onClick(View view){ HomeFragment fragment = new HomeFragment(); FragmentTransaction ft2 = mFragmentmanager.beginTransaction(); …

6
異なるフラグメント/レイアウトでViewPagerを実装する方法
viewpagerを実装するアクティビティを開始すると、viewpagerはさまざまなフラグメントを作成しました。フラグメントごとに異なるレイアウトを使用したいのですが、問題は、viewpagerが最大で2つのレイアウトしか表示しないことです(1の後に残っているすべてのフラグメントの2番目のレイアウト)。 以下は、viewpagerを実装するSwipeActivity のコードです。 public class SwipeActivity extends FragmentActivity { MyPageAdapter pageAdapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_swipe); pageAdapter = new MyPageAdapter(getSupportFragmentManager()); ViewPager pager=(ViewPager)findViewById(R.id.pager); pager.setAdapter(pageAdapter); ActionBar bar = getActionBar(); bar.setDisplayHomeAsUpEnabled(true); } /** * Custom Page adapter */ private class MyPageAdapter extends FragmentPagerAdapter { public MyPageAdapter(FragmentManager fm) { super(fm); } …

14
getActivity()がフラグメント関数でnullを返す
このようなパブリックメソッドのフラグメント(F1)があります public void asd() { if (getActivity() == null) { Log.d("yes","it is null"); } } そして、私が(アクティビティから)それを呼び出すと、それはnullです... FragmentTransaction transaction1 = getSupportFragmentManager().beginTransaction(); F1 f1 = new F1(); transaction1.replace(R.id.upperPart, f1); transaction1.commit(); f1.asd(); それは私が非常に間違っていることであるに違いありませんが、それが何であるかはわかりません

5
アクティビティとフラグメントの数は?
イントロ: 基本的な「フラグメントチュートリアル」パターンは次のようになります。 タブレットでは、左側にリスト、右側に詳細があります。 両方とも Fragments同じ場所にありActivityます。 電話では、リストFragmentを1つにまとめActivityます。 Activity詳細を指定して新しいものを起動しFragmentます。 (例:Dianne HackbornによるAndroid 3.0 Fragments APIとFragments APIガイド) どちらのデバイスでも、機能はにありFragmentsます。(シンプル) で、タブレット、全体のアプリがある1Activityに、携帯電話がある多くのActivities。 質問: 電話アプリを多数に分割する理由はありActivitiesますか? この方法の1つの問題は、メインのTablet と別のPhoneで多くのロジックを複製することです。ActivityActivities 両方のケースで1アクティビティモデルを保持する方が簡単で、同じロジックを使用して切り替えFragmentsます(異なるレイアウトを使用するだけ)。 このようにして、ほとんどのロジックはFragmentsそれ自体に存在し、Activityコードの重複が1つだけ少なくなります。 また、私が読んだのActionBarSherlockは、それがではFragmentsなく、最もうまく機能しているように見えるということですActivities(ただし、まだ機能していません)。 チュートリアルは単純化しすぎていますか、それともこのアプローチで重要な何かを見逃しましたか? 私たちはオフィスで両方のアプローチを成功させました-しかし、私はより大きなプロジェクトを開始しようとしていて、できるだけ自分のために物事を簡単にしたいと思っています。 関連する質問へのリンク: ジレンマ:フラグメントvsアクティビティを使用する場合: アクティビティ遷移と動的フラグメントを使用するパターン Android-フラグメントとアクティビティおよびビューの説明が必要です Androidのアクティビティまたはフラグメント? 複数のフラグメントとアクティビティの相互作用設計 では、Android 3.0のフラグメントの正確な利点は何ですか? アップデート 質問の報奨金を開始しました-タブレットアクティビティと各電話アクティビティでアプリロジックを複製する必要がある理由についてまだ確信がありません。 また、Squareのメンバーによる興味深い記事も見つかりました。これは一見の価値があります。 Androidフラグメントに対する反対

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