0

実行時に動的フラグメントを追加するアクティビティを作成しようとしています。そのフラグメントから、ボタンのクリックで他の 6 つのフラグメントを開くことができるようにしたいと考えています。[ケースを使用してこれを実装する可能性が最も高い]

Windows 8 の UI と考えてください。6 つのボタンがあり、それぞれが新しいフラグメントを開きます。

残念ながら、これについてどうすればよいかわかりません。データをメイン アクティビティに戻すためのボタンを取得できないようです。また、git の事故により、かなりのコードを失いました。これが私が再現したものです。

コーディング スタイル、構文、Java、オブジェクト指向に関するヒントがあれば、それも大歓迎です。私はCの背景から来ています。私の最終目標は、後でいくつかの簡単な構文糖衣のための replaceFragment(Frag) メソッドを作成することです。これまでのところ、それを実装して成功させることはできませんでしたが。

フラグメントに関するもう 1 つの小さな質問 - 実行時に動的に追加しようとしています - 実行時にすべてを作成する必要がありますか? したがって、それぞれに .add [ドリンク フラグメント、メニュー フラグメント] が必要ですか、それとも .replace を実行するだけでよいのでしょうか。

SingleFragmentActivity.java

 public abstract class SingleFragmentActivity extends FragmentActivity{
protected abstract Fragment createFragment();

FragmentManager fm = getSupportFragmentManager();


@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
    this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); //Lock screen orientation for app

    Fragment frag = fm.findFragmentById(R.id.fragment_container);
    fm.beginTransaction()
    .add(R.id.fragment_container,frag)
    .commit();
}

}

Customer_Activity.java

public class Customer_Activity extends SingleFragmentActivity {
    
    public static Context appContext;

            @Override
            protected Fragment createFragment() {
                return new CustomerSelectionFragment();
            }
}

顧客選択フラグメント

public class CustomerSelectionFragment extends Fragment implements OnClickListener{



@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
    View v = inflater.inflate(R.layout.customer_selection_fragment, container, false);
    //Buttons should be placed here?
    Button btnDrink = (Button) v.findViewById(R.id.Drink);
    btnDrink.setOnClickListener(this);
    
    Button btnMenu = (Button) v.findViewById(R.id.Menu);
    btnDrink.setOnClickListener(this);

    return v;
}

//implement the onClick method here
public void onClick(View v) {
   // Perform action on click
  switch(v.getId()) {
    case R.id.Drink:
     //Not sure how to pass "Create Drink Fragment to activity?
      break;
    case R.id.Menu:
      //Pass Create Menu fragment to activity?
      break;
      }
   }
    

    
    
  }

善意の理由 [明確さなど] で私の投稿を編集する人がいてもまったく問題ありません。

4

1 に答える 1