0

私はマスター詳細レイアウトを持っています。マスター フローはリスト フラグメントを使用して実装され、詳細フラグメントは単なるラジオ ボタン グループです。レイアウトは次のようになります。

私のレイアウト

リスト フラグメントの各オプションには、対応する詳細フラグメントとラジオ ボタン グループがあります。私が欲しいのは、submitボタンがクリックされたときに、チェックされた(選択された)ラジオボタンをすべて収集することです。理想的には、チェックされたラジオ ボタンの配列のようなものが欲しいです。

この問題に対する最善のアプローチは何でしょうか?

4

3 に答える 3

0

1つ目は、ラジオボタンではなく、複数選択を使用するためのチェックボックスを使用することです

2番目に、持っているすべてのラジオボタンを含むビューを取得し、このように繰り返し、チェックされているラジオボタンを見つけてリストに追加します

RadioGroup rb = (RadioGroup) findViewById(R.id.rdgroup);
    ArrayList<RadioButton> list = new ArrayList<RadioButton>();

    int childcount = rb.getChildCount();
    for (int i=0; i < childcount; i++){
          View v = rb.getChildAt(i);
          if(v instanceof  RadioButton)
              if(((RadioButton)v).isChecked())
              list.add((RadioButton)v);
    }
于 2013-05-15T09:42:24.170 に答える
0

ラジオボタンがチェックされている場合、ハッシュマップを使用して、キーと値のペアで選択したオプションを追加してみてください

Map<String, String> mapoption=new HashMap<String, String>();

if(rboption1.isChecked()){
        Log.v(TAG+".onClick", "option 1 selected");

        optionselect=1;
        mapoption.put(String.valueOf(rank), String.valueOf(optionselect));
    }
else if(rboption2.isChecked()){
        Log.v(TAG+".onClick", "option 2 selected");
        optionselect=2;
        mapoption.put(String.valueOf(rank), String.valueOf(optionselect));

    } else if(rboption3.isChecked()){
        Log.v(TAG+".onClick", "option 3 selected");
        optionselect=3;
        mapoption.put(String.valueOf(rank), String.valueOf(optionselect));

    }

    else if(rboption4.isChecked()) {
        Log.v(TAG+".onClick", "option 4 selected");
        optionselect=4;
        mapoption.put(String.valueOf(rank), String.valueOf(optionselect));

    } else {
        Log.v(TAG+".onClick", "No any option is selected");
        optionselect=0;
        mapoption.put(String.valueOf(rank), String.valueOf(optionselect));

    }
于 2013-05-15T09:24:16.893 に答える
0

この問題を解決するために、詳細ビューに ViewPager を使用しました。ViewPager には、ラジオ ボタン グループが含まれています。ラジオ ボタン グループ内のラジオ ボタンを選択するたびに、その選択を静的配列に記録します。

于 2013-05-27T05:06:25.737 に答える