Make my radio buttons become selected in Android
When I run this could and click on the dialog box my radiobuttons do not become selected like intended
package edu.elon.cs.mobile;
public class PTCalculator extends Activity{
private RadioButton maleRadioButton;
private RadioButton femaleRadioButton;
private EditText ageEdit;
private EditText pushUpsEdit;
private EditText sitUpsEdit;
private EditText mileMinEdit;
private EditText mileSecEdit;
private Button calculate;
private TextView score;
protected AlertDialog genderAlert;
private int currScore;
private int age;
private int sitUps;
private int runTime;
private int pushUps;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.pt);
maleRadioButton = (RadioButton) findViewById(R.id.male);
femaleRadioButton = (RadioButton) findViewById(R.id.female);
ageEdit = (EditText) findViewById(R.id.ageEdit);
pushUpsEdit = (EditText) findViewById(R.id.pushupEdit);
sitUpsEdit = (EditText) findViewById(R.id.situpEdit);
mileMinEdit = (EditText) findViewById(R.id.minEdit);
mileSecEdit = (EditText) findViewById(R.id.secEdit);
calculate = (Button) findViewById(R.id.calculateButton);
calculate.setOnClickListener(calculateButtonListener);
score = (TextView) findViewById(R.id.scoreView);
genderAlert = makeGenderDialog().create();
}
private OnClickListener calculateButtonListener = new OnClickListener() {
@Override
public void onClick(View arg0) {
age = (Integer.parseInt(ageEdit.getText().toString()));
pushUps = (Integer.parseInt(pushUpsEdit.getText().toString()));
sitUps = (Integer.parseInt(sitUpsEdit.getText().toString()));
int min = (Integer.parseInt(mileMinEdit.getText().toString())*60);
int sec = (Integer.parseInt(mileSecEdit.getText().toString()));
runTime = min + sec;
if(maleRadioButton.isChecked()){
MalePTTest mPTTest = new MalePTTest(age, pushUps, sitUps, runTime);
currScore = mPTTest.mal开发者_运维技巧ePTScore();
score.setText((Integer.toString(currScore)));
}else if(femaleRadioButton.isChecked()){
FemalePTTest fPTTest = new FemalePTTest(age, pushUps, sitUps, runTime);
currScore = fPTTest.femalePTScore();
score.setText((Integer.toString(currScore)));
}else
genderAlert.show();
}
};
public AlertDialog.Builder makeGenderDialog(){
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage("Select a Gender")
.setCancelable(false)
.setPositiveButton("Female", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
femaleRadioButton.setSelected(true);
FemalePTTest fPTTest = new FemalePTTest(age, pushUps, sitUps, runTime);
currScore = fPTTest.femalePTScore();
score.setText((Integer.toString(currScore)));
}
})
.setNegativeButton("Male", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
maleRadioButton.setSelected(true);
MalePTTest mPTTest = new MalePTTest(age, pushUps, sitUps, runTime);
currScore = mPTTest.malePTScore();
score.setText((Integer.toString(currScore)));
}
});
return builder;
}
}
Any suggestions?
Change:
maleRadioButton.setSelected(true);
To:
maleRadioButton.setChecked(true);
Selected means that the view is highlighted (similar to having focus) whereas setChecked sets the state of the item, from the API:
public void setSelected (boolean selected) Since: API Level 1
Changes the selection state of this view. A view can be selected or not. Note that selection is not the same as focus. Views are typically selected in the context of an AdapterView like ListView or GridView; the selected view is the view that is highlighted. Parameters selected true if the view must be selected, false otherwise
精彩评论