16

フラグメントを作成するために、以下のコードを実行しました。フラグメントのレイアウトをプログラムで作成するにはどうすればよいですか?

ファイル名:fragment_a.xml Javaでは

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/frag_a" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    > 

</LinearLayout> 

public class FragA extends Fragment{ 
    View view_a; 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
      Bundle savedInstanceState) { 

     view_a = inflater.inflate(R.layout.fragment_a, container, false); 

     return view_a; 
    } 



} 

今私はxmlファイルを作成しにコードを記述することなく、フラグメントビューを作成するにはどのような方法があるかどうかを知る必要がありそれ?

私が言うことは、フラグメントのXMLファイルを作成するのではなく、Javaコードを使用してそのフラグメントのビューを作成することです。

これは可能ですか?

+0

可能ですが、お勧めできません。ハードコーディングされているのではなくxmlを使ってデバッグする方が簡単です。 – princepiero

+0

Androidをプログラミングするときにxmlを作成し、xmlとjavaが犯罪のパートナーになるのはなぜですか? – princepiero

+0

私は、フラグメントのビューを動的に作成することを考えていました。そのため、1つまたは2つのパラメータを変更すると、別のフラグメントでそれを使用できます。 – user2729183

答えて

30

はい、もちろん可能です。 たとえば、カスタムビューを使用してインフレーションラインを置き換えます。

public class FragA extends Fragment{ 

    View view_a; 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 

     view_a = new YourCustomView(); 

     return view_a; 
    } 
} 

またはそのような

public class FragA extends Fragment{ 

     View view_a; 

     @Override 
     public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 

      view_a = new LinearLayout(getActivity()); 

      return view_a; 
     } 
    } 

または追加し、より再生回数:

public class FragA extends Fragment{ 

     View view_a; 

     @Override 
     public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 

      LinearLayout ll = new LinearLayout(getActivity()); 
      ll.addView(new TextView(getActivity())); 

      view_a = ll; 

      return view_a; 
     } 
    }