让我的单选按钮在 Android 中被选中
Posted
技术标签:
【中文标题】让我的单选按钮在 Android 中被选中【英文标题】:Make my radio buttons become selected in Android 【发布时间】:2011-02-11 07:19:56 【问题描述】:当我运行它并单击对话框时,我的单选按钮不会像预期的那样被选中
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.malePTScore();
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;
有什么建议吗?
【问题讨论】:
【参考方案1】:变化:
maleRadioButton.setSelected(true);
收件人:
maleRadioButton.setChecked(true);
Selected 表示视图被突出显示(类似于获得焦点),而 setChecked 设置项目的状态,来自 API:
public void setSelected(布尔值 已选择)自:API 级别 1
改变这个的选择状态 看法。可以选择或不选择视图。 注意选择不一样 作为焦点。通常选择视图 在 AdapterView 的上下文中 列表视图或网格视图;被选中的 view 是突出显示的视图。 参数选择 true 如果视图 必须选择,否则为假
【讨论】:
以上是关于让我的单选按钮在 Android 中被选中的主要内容,如果未能解决你的问题,请参考以下文章