2016-12-28 6 views
-1

Я пытаюсь сделать регистрационную форму, где все значения сохраняются на сервере, но я не знаю, как отправить значение кнопок переключателей и переключить опции кнопок на сервер. Я пробовал реализовать это для кнопок Radio, но когда это действие открывается, оно отображает только значение переключателя только один раз. Пожалуйста, скажите мне правильный способ сделать это как для переключателя, так и для переключения?как я могу отправить значение переключателя и переключить вариант случая на сервер с помощью json android?

Регистрация Активность

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); 
     } 
    } 

} 

XML File

<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> 

ответ

0

вы можете получить значение проверяемого кнопки с 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(); 
     } 
    }); 
+0

я пытался поставить ур код, но это дает мне error..can сказать, у меня, где я положил его изгоняются –

+0

'public void addListenerOnButton() { RadioGroup rgrp = (RadioGroup) findViewById (R.id.rg); // ЗДЕСЬ } ' –

0

попробовать это упаковывают радиокнопки она работает для меня.

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

код выше, чтобы получить значение переключателя.

заменить этот код

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

с этим кодом и тест

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

надеюсь, что это обновленный код помогает you.you просто заменить и проверить

+0

может у сделать это с mycode ... новичок в андроид –

+0

я пытаюсь, но это дает мне красную линию на getTexttoString..cannot метод решительности –

+0

actuallt, когда я попробовал свой код в начале в тосте значение происходит от переключателя, но я хочу нажать кнопку и т. д., когда я нажимаю любую опцию, а не по умолчанию, –

-1

я Gt мой ответ на мне просто нужно использовать этот код внутри кнопки:

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(); 
0

Добавить глобальную переменную переменной String gender и boolean variableValue.

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

Внутри 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(); 

} 

для получения состояния переключателя

switchValue = swth.isChecked(); 
+0

, может ли сказать мне в моей кодировке, где shud i post для коммутатора? –

+0

Внутри по сравнению с предыдущим методом –

+0

это дает мне ошибку..может у пост ур код в моем классе ..n сообщение tht здесь..coz, когда я пробовал urs его nt работает –

Смежные вопросы