2017-05-28 10 views
0

ユーザーが選択したオプションを回復して別のアクティビティに渡す必要があります。どのようにすればいいですか?別のアクティビティでRadioGroupからデータを復旧する方法は?

public class SelectServicesActivity extends AppCompatActivity { 
Button btn_seleccion; 
RadioGroup radioGroup; 
TextView tvServicio1, tvServicio2, tvServicio3; 
RadioButton rb1, rb2, rb3; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_services); 

    radioGroup = (RadioGroup) findViewById(R.id.rg_servicios); 
    btn_seleccion = (Button) findViewById(R.id.btn_seleccion); 
    rb1 = (RadioButton) findViewById(R.id.rb1); 
    rb2 = (RadioButton) findViewById(R.id.rb2); 
    rb3 = (RadioButton) findViewById(R.id.rb3); 


btn_seleccion.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      if (radioGroup.getCheckedRadioButtonId() == -1) 
      { 
       // no radio buttons are checked 
       Toast.makeText(getApplicationContext(), "Por favor, selecciona una opción", Toast.LENGTH_SHORT).show(); 
      } 
      else 
      { 
       // one of the radio buttons is checked 
       Intent intent = new Intent (v.getContext(), SelectDayActivity.class); 
       startActivityForResult(intent, 0); 

      } 

      } 

    }); 


    }} 

ユーザーが選択するオプションは、別のアクティビティで取得する必要があります。

答えて

0

第二活性におけるその後、この

Intent intent = new Intent (v.getContext(), SelectDayActivity.class); 
intent.putExtra("value", valueToSend); 
       startActivityForResult(intent, 0); 

を試してみてはonCreate()

String value = getIntent().getStringExtra("value"); 
0

それを得る私は100%確実ではないですが、uはボタンクリックで次の行を追加することができますありがとう

int selectedId = radioGroup .getCheckedRadioButtonId(); 
if(selectedId == -1) { 
    Toast.makeText(getApplicationContext(), "Por favor, selecciona una opción", Toast.LENGTH_SHORT).show(); 
    return; 
} 

RadioButton radioButton = (RadioButton) findViewById(selectedId); 
String selected_option = radioButton.getText().toString().trim(); 
Intent intent = new Intent (SelectServicesActivity , SelectDayActivity.class); 
Bundle bundle = new Bundle(); 
bundle.putString("SELECTED_ITEM", selected_option); 
intent.putExtra("SELECTED_BUNDLE", bundle); 
startActivityForResult(intent, 0); 

は現在のonCreate内側端(SelectDayActivity.class)を受信すると()この

Bundle bundle = getIntent().getBundleExtra("SELECTED_BUNDLE"); 
String value = bundle.getString("SELECTED_ITEM"); 
Log.e("TAG", "_log : value : " + value); // should print your option 
+0

文字列変数を宣言する必要があると思いますが、どう思いますか? –

+0

SelectServicesActivity.classにString変数を宣言する必要はありません。 SelectDayActivity.classでは、strings selected_optionをグローバルに宣言できます。 –

+0

コードをコンパイルしましたが、2番目のアクティビティで選択した項目は表示されません。 –

0

ようselected_optionを取得私はこの部分を変更し、選択したオプションを検証するためにトーストを追加:で

int selectedId = radioGroup.getCheckedRadioButtonId(); 
      RadioButton rb = (RadioButton) radioGroup.findViewById(selectedId); 

      if(selectedId == -1) { 
       Toast.makeText(getApplicationContext(), "Por favor, selecciona una opción", Toast.LENGTH_SHORT).show(); 
       return; 
      } 
      Toast.makeText(SelectServicesActivity.this, "servicio " + rb.getText().toString(), Toast.LENGTH_LONG).show(); 

      //RadioButton radioButton = (RadioButton) findViewById(selectedId); 
      String selected_option = rb.getText().toString().trim(); 
      Intent intent = new Intent (SelectServicesActivity.this, SelectDayActivity.class); 
      intent.putExtra("SELECTED_ITEM", selected_option); 
      startActivityForResult(intent, 0); 


      } 

私が情報を受けたい他の活動、私はこれを加えました:

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_verificar_datos); 

    textView_tipo_servicio = (TextView) findViewById(R.id.textView_tipo_servicio); 
    String selected_option = getIntent().getStringExtra("SELECTED_ITEM"); 
    textView_tipo_servicio.setText(selected_option); 

問題は情報が表示されないということです。

+0

@ msh.nayan Look –

+0

SelectServicesActivity.classでToastが正しいオプションを示していますか? –

+0

はい、トーストは適切なオプションを表示します –

関連する問題