puedo pantalla modo guia fijar directo configuración configuracion asistente activar acceso accesibilidad abrir android json switch-statement radio-group

pantalla - ¿Cómo puedo enviar el valor del botón de opción y cambiar la opción de la caja al servidor usando json android?



modo accesibilidad android (4)

Intento crear un formulario de registro donde todos los valores se guarden en el servidor, pero no sé cómo enviar el valor de los botones de radio y cambiar el valor de los botones de opción al servidor. Intenté implementar esto para los botones de Radio, pero cuando esta actividad se abre, solo muestra el valor del botón de opción una sola vez. Amablemente dime la forma correcta de hacer esto para el botón de radio y el interruptor?

Actividad de registro

package com.example.zeba.broccoli; import android.app.ProgressDialog; import android.content.Context; import android.content.Intent; import android.os.AsyncTask; import android.os.Bundle; import android.support.design.widget.FloatingActionButton; import android.support.design.widget.Snackbar; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.Toolbar; import android.util.Log; import android.view.MenuItem; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.RadioButton; import android.widget.RadioGroup; import android.widget.Switch; import android.widget.RadioGroup.OnCheckedChangeListener; import android.widget.Toast; import org.apache.http.NameValuePair; import org.apache.http.message.BasicNameValuePair; import org.json.JSONException; import org.json.JSONObject; import java.util.ArrayList; import java.util.List; public class RegistrationForm extends AppCompatActivity { EditText fn,ln,mb,em,pw,cpw,dob,gen; Switch sw; RadioGroup male,feml; Switch swth; private ProgressDialog pDialog; private static String url_create_book = "http://cloud.....com/broccoli/creatinfo.php"; // JSON Node names private static final String TAG_SUCCESS = "success"; JSONParser jsonParser = new JSONParser(); private int serverResponseCode = 0; Context c; int i=0; Button sub; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_registration_form); Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(toolbar); fn=(EditText)findViewById(R.id.fnm) ; ln=(EditText)findViewById(R.id.lnm) ; mb=(EditText)findViewById(R.id.mobile) ; em=(EditText)findViewById(R.id.email) ; pw=(EditText)findViewById(R.id.pass) ; cpw=(EditText)findViewById(R.id.cpass) ; RadioButton male=(RadioButton)findViewById(R.id.rgm) ; RadioButton feml=(RadioButton)findViewById(R.id.rgf) ; Switch swth=(Switch)findViewById(R.id.mySwitch) ; getSupportActionBar().setDisplayHomeAsUpEnabled(true); sub=(Button)findViewById(R.id.sub2); addListenerOnButton(); sub.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { new CreateNewProduct().execute(); // startActivity(new Intent(RegistrationForm.this, Home.class)); } }); } public void addListenerOnButton() { RadioGroup rgrp=(RadioGroup)findViewById(R.id.rg); RadioButton radioButton; // get selected radio button from radioGroup int selectedId = rgrp.getCheckedRadioButtonId(); // find the radiobutton by returned id radioButton = (RadioButton) findViewById(selectedId); Toast.makeText(RegistrationForm.this, radioButton.getText(), Toast.LENGTH_SHORT).show(); } class CreateNewProduct extends AsyncTask<String, String, String> { private String fname; private String lname; private String email; /** * Before starting background thread Show Progress Dialog * */ @Override protected void onPreExecute() { super.onPreExecute(); pDialog = new ProgressDialog(RegistrationForm.this); pDialog.setMessage("Creating books.."); pDialog.setIndeterminate(false); pDialog.setCancelable(true); pDialog.show(); fname = fn.getText().toString(); lname = ln.getText().toString(); email = em.getText().toString(); } protected String doInBackground(String... args) { // Building Parameters List<NameValuePair> params = new ArrayList<NameValuePair>(); params.add(new BasicNameValuePair("First_Name", fname)); params.add(new BasicNameValuePair("Last_Name",lname)); params.add(new BasicNameValuePair("email", email)); // getting JSON Object // Note that create product url accepts POST method JSONObject json = jsonParser.makeHttpRequest(url_create_book, "POST", params); // check log cat fro response Log.d("Create Response", json.toString()); // check for success tag try { int success = json.getInt(TAG_SUCCESS); if (success == 1) { // successfully created product Intent i = new Intent(getApplicationContext(), Login.class); startActivity(i); // closing this screen finish(); } else { // failed to create product } } catch (JSONException e) { e.printStackTrace(); } return null; } /** * After completing background task Dismiss the progress dialog * **/ protected void onPostExecute(String file_url) { // dismiss the dialog once done pDialog.dismiss(); } } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case android.R.id.home: onBackPressed(); return true; default: return super.onOptionsItemSelected(item); } } }

Archivo XML

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center_horizontal" android:orientation="vertical" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.example.zeba.broccoli.Login"> <!-- Registration Form --> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:padding="20dip" android:orientation="vertical" android:layout_marginTop="20dp" android:layout_alignParentTop="true" android:layout_alignParentStart="true"> <!-- Full Name Label --> <EditText android:id="@+id/fnm" android:hint="First Name" android:layout_width="fill_parent" android:background="@drawable/rounded_edittext" android:layout_height="40dp" android:paddingLeft="5dp" android:layout_marginTop="30dp" android:layout_marginBottom="20dip"/> <EditText android:id="@+id/lnm" android:hint="Last Name" android:layout_width="fill_parent" android:background="@drawable/rounded_edittext" android:layout_height="40dp" android:paddingLeft="5dp" android:layout_marginBottom="20dip"/> <EditText android:id="@+id/mobile" android:layout_width="fill_parent" android:layout_height="40dp" android:paddingLeft="5dp" android:background="@drawable/rounded_edittext" android:hint="Mobile Number" android:layout_marginBottom="20dip"/> <!-- Password Label --> <EditText android:id="@+id/email" android:layout_width="fill_parent" android:hint="Email" android:layout_height="40dp" android:paddingLeft="5dp" android:background="@drawable/rounded_edittext" android:layout_marginBottom="20dip"/> <EditText android:id="@+id/pass" android:layout_width="fill_parent" android:hint="password" android:inputType="textPassword" android:layout_height="40dp" android:paddingLeft="5dp" android:background="@drawable/rounded_edittext" android:layout_marginBottom="20dip"/> <!-- Register Button --> <EditText android:id="@+id/cpass" android:layout_width="fill_parent" android:layout_height="40dp" android:paddingLeft="5dp" android:inputType="textPassword" android:background="@drawable/rounded_edittext" android:hint="Confirm password" android:layout_marginBottom="20dip"/> <EditText android:id="@+id/dob" android:layout_width="fill_parent" android:layout_height="40dp" android:paddingLeft="5dp" android:background="@drawable/rounded_edittext" android:hint="Date of Birth(Optional)" android:layout_marginBottom="20dip"/> <!-- Register Button --> <!-- Link to Login Screen --> <TextView android:id="@+id/gen" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginBottom="20dip" android:text="Gender" android:textSize="18dp"/> <RelativeLayout android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity" > <RadioGroup android:id="@+id/rg" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal" > <RadioButton android:id="@+id/rgm" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_gravity="left" android:checked="true" android:layout_weight="1" android:textSize="14dp" android:text="Male" /> <RadioButton android:id="@+id/rgf" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_gravity="right" android:checked="false" android:layout_weight="1" android:textSize="14dp" android:text="Female" /> </RadioGroup> </RelativeLayout> <View android:layout_width="fill_parent" android:layout_height="2dp" android:background="#c0c0c0"/> <TextView android:id="@+id/rupdates" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginTop="20dip" android:layout_marginBottom="20dip" android:text="Receive updates on offers, promotions and discounts" android:gravity="center" android:textSize="20dip" /> <RelativeLayout android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity" android:padding="5dp"> <TextView android:id="@+id/sms" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginBottom="20dip" android:text="Subscribe to sms" android:textSize="20dip" /> <Switch android:id="@+id/mySwitch" android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_alignParentRight="true" /> <Button android:id="@+id/sub2" style="?android:textAppearanceSmall" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="40dp" android:text="Submit" android:background="@drawable/mybutton" android:textColor="#fff" android:textStyle="bold" android:elevation="0dp" /> </RelativeLayout> </LinearLayout> <!-- Registration Form Ends --> </ScrollView>


Agregue una variable global de género String y una variable booleana switchValue.

String gender="Male" ; boolean switchValue = false ;

Dentro del método RadioGroupListener

public void addListenerOnButton() { RadioGroup rgrp=(RadioGroup)findViewById(R.id.rg); rgrp.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { @Override public void onCheckedChanged(RadioGroup radioGroup, int i) { if(i==R.id.rgm){ gender="Male" ; }else{ gender="Female"; } } }); Toast.makeText(RegistrationForm.this, radioButton.getText(), Toast.LENGTH_SHORT).show(); }

Para obtener el estado del interruptor

switchValue = swth.isChecked();


Prueba esto en caso de que el botón de radio funcione para mí.

radio_button_value1 = ((RadioButton) findViewById(radioGroup1.getCheckedRadioButtonId())).getText().toString();

el código anterior es para obtener el valor del botón de radio.

reemplace su código

// get selected radio button from radioGroup int selectedId = rgrp.getCheckedRadioButtonId();

con este código y prueba

// get selected radio button from radioGroup int selectedId = rgrp.getCheckedRadioButtonId().getText().toString();

Espero que este código actualizado te ayude. Solo tienes que reemplazar y verificar


Solo tengo que responder por mi cuenta, necesito usar ese código dentro del botón:

public void onClick(View v) { RadioGroup rgrp=(RadioGroup)findViewById(R.id.rg); RadioButton radioButton; int selectedId = rgrp.getCheckedRadioButtonId(); // find the radiobutton by returned id radioButton = (RadioButton) findViewById(selectedId); Toast.makeText(RegistrationForm.this, radioButton.getText(), Toast.LENGTH_SHORT).show();


puede obtener el valor del botón de OnCheckedChangedListener en OnCheckedChangedListener

rgrp.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { public void onCheckedChanged(RadioGroup group, int checkedId) { // checkedId is the RadioButton selected RadioButton rb=(RadioButton)findViewById(checkedId); Toast.makeText(getApplicationContext(), rb.getText(), Toast.LENGTH_SHORT).show(); } });