2017-12-15 21 views
0

一つLinearlayoutRadioGroupとtextViewを作成して動的に追加しています。次回にメソッドを呼び出すと、Textviewが削除されていますが、古いラジオボタンは削除されません。ここでLinearlayoutは子を取り除くことができません

はコードです:ここでは

public void setShippingMethods() { 
    shippingChargesLayout.removeAllViews(); 
    final RadioGroup radioGroup = new RadioGroup(getActivity()); 

    radioGroup.setOrientation(LinearLayout.VERTICAL); 
    TextView textView = new TextView(getActivity()); 
    textView.setText("Select Shipping Options:"); 
    shippingChargesLayout.addView(textView); 
    for (int i = 0; i < shippingDetailsList.size(); i++) { 
     RadioButton radioButton = new RadioButton(getActivity()); 
     radioButton.setText("" + shippingDetailsList.get(i).getMethodTitle() + "-" + (new SessionManager(getActivity()).getCurrency()) + df.format(shippingDetailsList.get(i).getAmount())); 

     RadioGroup.LayoutParams params = new RadioGroup.LayoutParams(RadioGroup.LayoutParams.WRAP_CONTENT, RadioGroup.LayoutParams.WRAP_CONTENT); 
     radioGroup.addView(radioButton, params); 
     radioButton.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT)); 
    } 
    shippingChargesLayout.addView(radioGroup); 

    radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { 
     @Override 
     public void onCheckedChanged(RadioGroup radioGroup, int i) { 
      shipmentCode = shippingDetailsList.get(i - 1).getCarrierCode(); 
      Log.v("carrierCode", "" + shipmentCode); 
     } 
    }); 

    checkout.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      if (radioGroup.getCheckedRadioButtonId() == -1) { 
       Toast.makeText(getActivity(),"Select shipping options.",Toast.LENGTH_LONG).show(); 
      } else { 
       completeOrder(); 
      } 
     } 
    }); 
} 

イメージは以下のとおりです。

Select Shipping Options

+0

それが再び明確でなければならないので、あなたは再びRADIOGROUPを構築している、あなたはちょうどあなたが任意のRADIOGROUP変数を持っていないことを確認するためにこれを追加しようとすることができますか? "radioGroup.removeAllViews();" –

+0

すでにこれを試しました。 – shubham

答えて

0

私はあなたのコード内のいくつかの変更を行いました。

public void setShippingMethods() { 
    shippingChargesLayout.removeAllViews(); 
    final RadioGroup radioGroup = new RadioGroup(getActivity()); 
    RadioGroup.LayoutParams params = new RadioGroup.LayoutParams(RadioGroup.LayoutParams.WRAP_CONTENT, RadioGroup.LayoutParams.WRAP_CONTENT); 
    radioGroup.setLayoutParams(params); 
    radioGroup.setOrientation(LinearLayout.VERTICAL); 
    TextView textView = new TextView(getActivity()); 
    textView.setText("Select Shipping Options:"); 
    shippingChargesLayout.addView(textView); 
    for (int i = 0; i < shippingDetailsList.size(); i++) { 
     RadioButton radioButton = new RadioButton(getActivity()); 
     radioButton.setText("" + shippingDetailsList.get(i).getMethodTitle() + "-" + (new SessionManager(getActivity()).getCurrency()) + df.format(shippingDetailsList.get(i).getAmount())); 
     radioGroup.addView(radioButton); 
    } 
    shippingChargesLayout.addView(radioGroup); 

    radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { 
     @Override 
     public void onCheckedChanged(RadioGroup radioGroup, int i) { 
      shipmentCode = shippingDetailsList.get(i - 1).getCarrierCode(); 
      Log.v("carrierCode", "" + shipmentCode); 
     } 
    }); 

    checkout.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      if (radioGroup.getCheckedRadioButtonId() == -1) { 
       Toast.makeText(getActivity(),"Select shipping options.",Toast.LENGTH_LONG).show(); 
      } else { 
       completeOrder(); 
      } 
     } 
    }); 
} 
+0

常にあなたの変更を説明し、* what * but * whyだけでなく、あなたの情報にコンテキストを提供してください。 –

関連する問題