異なるデータセットを扱い、複数のビューをレンダリングするために異なるレイアウトファイルを必要とする機能を実行するフラグメントを実装する必要があります。私は、複数のレイアウトビューに関連付けられたデータのすべてのバックエンド操作に対して共通のフラグメントを実装したいと考えています。どうすればいいですか?その代わりのフラグメント内で複数のレイアウトファイルを使用するにはどうすればよいですか?
答えて
あなたが質問(バックエンド・オペレーション)で述べたように、フラグメントすなわちタスクのために必要とされるいくつかの一般的なタスクを実行するすべてのメソッドをベースフラグメントを作成します。このソリューション
を試すことができます。
必要なフラグメントを異なるレイアウトで作成し、ベースフラグメントを拡張します。
public class BaseFragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
return super.onCreateView(inflater,container,savedInstanceState);
}
//Add your backend operations for data and common methods
}
public class FragmentA extends BaseFragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
//Add your first layout here
}
}
public class FragmentB extends BaseFragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
//Add your second layout here
}
}
を切り替えることができ、複数のXMLレイアウトファイルと一つの活性のように行うことができます。私はあなたに知らせようとします。 – vinitpradhan18
問題があれば分かります。 – Anonymous
そうのようなあなた自身のコンディショニングに基づいて、異なるレイアウトを膨らませることができます。
View mView;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
if(condition_one())
mView = inflater.inflate(R.layout.condition_one_layout,container,false);
else if(condition_two())
mView = inflater.inflate(R.layout.condition_two_layout,container,false);
.
.
.
return mView;
}
最善のアプローチは、一つだけの活動すなわちを使用することです。主な活動。この主なアクティビティでは、データに応じて複数のフラグメントをロードできます。 方法を教えてください。
あなたactivity_main.xmlがあると仮定します。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<LinearLayout
android:id="@+id/fragment_container"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
</LinearLayout>
この活動は、その中の断片を持っているリニアレイアウトで構成されています。 データに応じて、この内部線形レイアウトで複数のフラグメントを読み込むことができます。あなたのMainActivity.javaで
、あなたがチェックを適用することにより、複数のフラグメントを読み込むことができます。ここでは
if(message.contains("first_fragment"))
{
FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
final FIRST_FRAGMENT fragment_activity = new FIRST_FRAGMENT();
fragmentTransaction.replace(R.id.fragment_container,fragment_activity,"FIRST FRAGMENT");
fragmentTransaction.commit();
}
else if(message.contains("second_fragment"))
{
FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
final SECOND_FRAGMENT fragment_activity = new SECOND_FRAGMENT();
fragmentTransaction.replace(R.id.fragment_container,fragment_activity,"SECOND FRAGMENT");
fragmentTransaction.commit();
}
私が行っていることは、あなたのメッセージが文字列first_fragmentを持っている場合、それはFIRST_FRAGMENTをロードする必要があり、です。同様に、メッセージに文字列second_fragmentがある場合は、SECOND_FRAGMENTをロードする必要があります。
さて、あなたFIRST_FRAGMENT.javaを実装するための時間:
public class FIRST_FRAGMENT extends Fragment {
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
return inflater.inflate(R.layout.first_fragment, null);
}
@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
// buttons or textview of fragment must be initialised here.
}
同様に、SECOND_FRAGMENTは同じになります。
ここで、現在ロードされているフラグメントを確認するとします。 あなたは、この:私はこれが動作すると思います
final FIRST_FRAGMENT myFragment = (FIRST_FRAGMENT) getSupportFragmentManager().findFragmentByTag("FIRST FRAGMENT");
if (myFragment != null && myFragment.isVisible()) {
myFragment.handleMessage(message);
// here handleMessage is the function declared in FIRST_FRAGMENT
}
私はすでにナビゲーション引き出しを使っています。そのアクティビティの中で、私は既に各メニュー項目にフラグメントを使用しています。今、これらの断片では、私は複数のレイアウト機能を実装する必要があります。 – vinitpradhan18
- 1. フラグメントの使用時にLinearLayout内でRecyclerViewを使用するにはどうすればよいですか?
- 2. AndroidおよびJava:Androidレイアウトファイルの複数のコピーを作成するにはどうすればよいですか?
- 3. フラグメントでCountdownTimerを使用するにはどうすればよいですか?
- 4. タブ内のフラグメント内でonCreateOptionsMenuを使用するにはどうすればよいですか? (Sherlock ActionBar)
- 5. Python2.7ループ内で複数の変数を使用するにはどうすればよいですか?
- 6. アンドロイドデータバインディングで論理演算を使用するにはどうすればよいですか?私のレイアウトファイルで
- 7. リストビューのArrayAdapter内で複数のテキストビューを使用するにはどうすればよいですか?
- 8. 複数の方法で複数変数を使用するにはどうすればよいですか?
- 9. フラグメント内をナビゲートするにはどうすればよいですか?
- 10. レイアウトファイルに在庫Androidの色を使用するにはどうすればよいですか?
- 11. 同じフラグメントを複数回使用するにはどうすればいいですか?
- 12. フラグメント内の関数を別の関数から呼び出すにはどうすればよいですか?
- 13. JavaScriptで複数変数間でグローバル変数を使用するにはどうすればよいですか?
- 14. EclipseでJavaファイル用に複数のテンプレートを使用するにはどうすればよいですか?
- 15. C#複数のクラスで変数を使用するにはどうすればよいですか?
- 16. twisted deferToThreadで複数の関数を使用するにはどうすればよいですか?
- 17. Java - 複数のソースフォルダ間でグローバル変数を使用するにはどうすればよいですか?
- 18. __repr__を複数の引数で使用するにはどうすればよいですか?
- 19. PHPで変数内の変数を使用するにはどうすればよいですか?
- 20. コントローラー関数内でディレクティブの関数を使用するにはどうすればよいですか?
- 21. 複数のSlickGridで汎用フォーマッタを使用するにはどうすればよいですか?
- 22. レイアウトファイルから変数をgrailsテンプレートに渡すにはどうすればよいですか?
- 23. アクティビティのスタックを複数のフラグメントでポップバックするにはどうすればいいですか?
- 24. doctrine 2エンティティのリポジトリ内で複合基準を使用するにはどうすればよいですか?
- 25. 汎用クラス内でEnumの静的関数を使用するにはどうすればよいですか?
- 26. カーソルループで使用する複数の列を取得するにはどうすればよいですか?
- 27. 複数のiPhoneアプリで使用するコンポーネントをパッケージ化するにはどうすればよいですか?
- 28. ArrayList内の複数の重複要素を数えるにはどうすればよいですか?
- 29. Free Pascalで複数のソースファイルをコマンドラインで使用するにはどうすればよいですか?
- 30. FQLでORDER BYで複数の列を使用するにはどうすればよいですか?
何かのように、私は適切にメインのXMLレイアウトファイルで – vinitpradhan18