2017-12-20 12 views
0

私はいくつかの画面があり、ユーザーが1回または2回クリックするだけの場所で作業するアプリで作業しています。 XMLでこれらの画面をすべて作成する必要はありません。だから、私は一時的に画面(フラグメント)を作成することができ、ユーザーがそれとやりとりするとただ破棄して次の画面を表示するソリューションを探しています。今のところ私はアクティビティにボタンを置くことしかできません。フラグメントをクリックすると開きます。しかし、私はそこにこだわっています。フラグメントをJavaコードからのみ作成する

これは、私はそれを行う、どのように行うために私のコード

RelativeLayout relativeLayout = findViewById(R.id.rootView); 
    relativeLayout.setBackgroundColor(Color.parseColor("#dddddd")); 
    relativeLayout.setPadding(16,16,16,16); 
    Button button = new Button(getApplicationContext()); 

     button.setText("Launch Activity"); 
    button.setAllCaps(false); 
    button.setBackgroundColor(Color.parseColor("#dddddd")); 
    button.setTextColor(Color.parseColor("#222222")); 
    button.setPadding(4,4,4,4); 
    button.setVisibility(View.VISIBLE); 
    button.setLayoutParams(new RelativeLayout.LayoutParams(
      RelativeLayout.LayoutParams.MATCH_PARENT, 
      RelativeLayout.LayoutParams.WRAP_CONTENT 
    )); 
    relativeLayout.addView(button); 

    button.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      //Toast.makeText(MainActivity.this, "I am clicked", Toast.LENGTH_SHORT).show(); 
      Fragment fragment = new Fragment(); 
      RelativeLayout relativeLayout1 = new RelativeLayout(getApplicationContext()); 
      TextView textView = new  TextView(getApplicationContext()); 
      textView.setText("This a new activity"); 
      textView.setTextSize(14.2f); 
      textView.setTextColor(Color.parseColor("#222222")); 
      textView.setAllCaps(false); 
      relativeLayout1.addView(textView); 

     } 
    }); 

のですか?それとも可能ですか?

答えて

1

あなたには、いくつかのビューを持っているの断片を作成したい場合は、オーバーライドする必要が

 @Nullable 
     public View onCreateView(@NotNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { 
      super.onCreateView(inflater, container, savedInstanceState); 

      //add creating view logic here 
      . 
      . 
      . 

      //return view here 
      return view; 
     } 
+0

これは意味がありますが、私はここに従うことができません。どのようにそれが可能になるかを精緻に説明できますか? – walimbeakshay

1

onCreateViewまず第一に、それは可能であり、XMLはUIを作るための簡単な方法です。とにかく、新しいクラスと実装とエクステンションを作る方が良いでしょう。したがって、あなたはそれらを別々に作るでしょう。 Fragmentを使用する場合は、 "onCreateView"を実装する必要があります。

関連する問題