[英]Radio Button parse android studio
I'm making a register act (java) in my android studio app and I have a radio group for gender. 我正在android studio应用中进行注册动作(java),并且有一个性别广播组。 I'm having trouble with the app crashing when i click the radio buttons to select gender.
单击单选按钮选择性别时,我遇到了应用崩溃的麻烦。 Im not sure if my code is right for getting the info to store in parse or if how im trying to store in parse is the problem
我不确定我的代码是否适合将信息存储在解析中,或者我试图在解析中存储的方式是否是问题
enter code here
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.view.View;
import android.widget.Button;
import android.widget.CompoundButton;
import android.widget.EditText;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.Toast;
import com.parse.ParseException;
import com.parse.ParseUser;
import com.parse.SignUpCallback;
public class RegisterActivity extends AppCompatActivity {
protected EditText mUserFirstname;
protected EditText mUserLastname;
protected EditText mUsername;
protected EditText mUserPassword;
protected EditText mUserEmail;
protected EditText mUserPhonenumber;
protected EditText mUserPostalcode;
protected RadioGroup mGender;
protected RadioButton mMale;
protected RadioButton mFemale;
protected EditText mDob;
protected Button mRegisterbutton;
private static final String COLUMN_GENDER = ""; //put here name of your column from table on Parse.com
private static final String MALE = ""; //put here value for male. Check the type of gender column on Parse.com (String, Number (Integer), Boolean, etc.)
private static final String FEMALE = ""; //put here value for female. Check the type of gender column on Parse.com (String, Number (Integer), Boolean, etc.)
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_register);
mMale.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked) {ParseUser user = new ParseUser();
user.put(COLUMN_GENDER, MALE);
user.saveInBackground(); // if you want to save immediately
}
}
});
mFemale.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked) {ParseUser user = new ParseUser();
user.put(COLUMN_GENDER, FEMALE);
user.saveInBackground(); // if you want to save immediately
}
}
});
//initialize
mUserFirstname = (EditText) findViewById(R.id.firstNameRegisterEditText);
mUserLastname = (EditText) findViewById(R.id.lastNameRegisterEditText);
mUsername = (EditText) findViewById(R.id.userNameRegisterEditText);
mUserPassword = (EditText) findViewById(R.id.passwordRegisterEditText);
mUserEmail = (EditText) findViewById(R.id.emailRegisterEditText);
mUserPhonenumber = (EditText) findViewById(R.id.phoneNumberRegisterEditText);
mUserPostalcode = (EditText) findViewById(R.id.postalCodeRegisterEditText);
mGender = (RadioGroup) findViewById(R.id.radioGroup);
mMale = (RadioButton) findViewById(R.id.maleGenderRegisterEditText);
mFemale = (RadioButton) findViewById(R.id.femaleGenderRegisterEditText);
mDob = (EditText) findViewById(R.id.dateofBirthEditText);
mRegisterbutton = (Button) findViewById(R.id.registerButton);
//Listen to Register button click
mRegisterbutton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//toast
//get the username, password and email and convert to string
String username = mUsername.getText().toString().trim();
String password = mUserPassword.getText().toString().trim();
String email = mUserEmail.getText().toString().trim();
String firstname = mUserFirstname.getText().toString().trim();
String lastname = mUserLastname.getText().toString().trim();
String phonenumber = mUserPhonenumber.getText().toString().trim();
String postalcode = mUserPostalcode.getText().toString().trim();
String gender = mMale.isChecked() ? MALE : FEMALE;
//store user
ParseUser user = new ParseUser();
user.setUsername("my name");
user.setPassword("my pass");
user.setEmail("email@example.com");
// other fields can be set just like with ParseObject
user.put("first name", "my name");
user.put("last name", "my name");
user.put("postal", "65055");
user.put("gender", "male or female");
user.put("dob", "mm/dd/yyyy");
user.put("phone", "650-253-0000");
user.put(COLUMN_GENDER, gender);
user.signUpInBackground(new SignUpCallback() {
@Override
public void done(ParseException e) {
if (e==null) {
//user signed up succesfully
Toast.makeText(RegisterActivity.this,"Welcome To The Party...", Toast.LENGTH_LONG).show();
//take user to homepage
}else {
// there was and error sigingup user. advise user
}
}
});
}
});
});
}
I think you are calling setOnCheckedChangeListener()
before initializing the radio buttons. 我认为您在初始化单选按钮之前正在调用
setOnCheckedChangeListener()
。 So try moving your initializers to the top, then the radio button. 因此,请尝试将初始化程序移至顶部,然后将单选按钮移至顶部。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_register);
//initialize first
mUserFirstname = (EditText) findViewById(R.id.firstNameRegisterEditText);
mUserLastname = (EditText) findViewById(R.id.lastNameRegisterEditText);
mUsername = (EditText) findViewById(R.id.userNameRegisterEditText);
mUserPassword = (EditText) findViewById(R.id.passwordRegisterEditText);
mUserEmail = (EditText) findViewById(R.id.emailRegisterEditText);
mUserPhonenumber = (EditText) findViewById(R.id.phoneNumberRegisterEditText);
mUserPostalcode = (EditText) findViewById(R.id.postalCodeRegisterEditText);
mGender = (RadioGroup) findViewById(R.id.radioGroup);
mMale = (RadioButton) findViewById(R.id.maleGenderRegisterEditText);
mFemale = (RadioButton) findViewById(R.id.femaleGenderRegisterEditText);
mDob = (EditText) findViewById(R.id.dateofBirthEditText);
mRegisterbutton = (Button) findViewById(R.id.registerButton);
//listen to checked changes next
mMale.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked) {ParseUser user = new ParseUser();
user.put(COLUMN_GENDER, MALE);
user.saveInBackground(); // if you want to save immediately
}
}
});
mFemale.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked) {ParseUser user = new ParseUser();
user.put(COLUMN_GENDER, FEMALE);
user.saveInBackground(); // if you want to save immediately
}
}
});
//Listen to Register button click
mRegisterbutton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//toast
//get the username, password and email and convert to string
String username = mUsername.getText().toString().trim();
String password = mUserPassword.getText().toString().trim();
String email = mUserEmail.getText().toString().trim();
String firstname = mUserFirstname.getText().toString().trim();
String lastname = mUserLastname.getText().toString().trim();
String phonenumber = mUserPhonenumber.getText().toString().trim();
String postalcode = mUserPostalcode.getText().toString().trim();
String gender = mMale.isChecked() ? MALE : FEMALE;
//store user
ParseUser user = new ParseUser();
user.setUsername("my name");
user.setPassword("my pass");
user.setEmail("email@example.com");
// other fields can be set just like with ParseObject
user.put("first name", "my name");
user.put("last name", "my name");
user.put("postal", "65055");
user.put("gender", "male or female");
user.put("dob", "mm/dd/yyyy");
user.put("phone", "650-253-0000");
user.put(COLUMN_GENDER, gender);
user.signUpInBackground(new SignUpCallback() {
@Override
public void done(ParseException e) {
if (e==null) {
//user signed up succesfully
Toast.makeText(RegisterActivity.this,"Welcome To The Party...", Toast.LENGTH_LONG).show();
//take user to homepage
}else {
// there was and error sigingup user. advise user
}
}
});
}
});
});
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.