先决条件:
- 适用于初学者的Android应用程序开发基础
- 安装和设置Android Studio指南
- Android |从第一个应用程序/ android项目开始
- Android |运行您的第一个Android应用
Android单选按钮是一个小部件,可以有多个选项可供选择。用户一次只能选择一个选项。此处的每个选项均指一个单选按钮,该主题的所有选项统称为“单选组”。因此,在RadioGroup内部使用单选按钮。
例如:
此图像显示了一个问题的主题的4个选项。在此,每个提到的主题都是一个“单选按钮”,所有这四个主题一起都包含在一个“无线电组”中。
如何创建一个Android应用程序以使用单选按钮
本示例将有助于开发根据上述示例创建单选按钮的Android应用:
- 步骤1:首先创建一个新的Android应用程序。这将创建一个XML文件“ activity_main.xml”和一个Java文件“ MainActivity”。 Java”。请参考先决条件以了解有关此步骤的更多信息。
- 步骤2:打开“ activity_main.xml”文件,并在“相对布局”中添加以下小部件:
- 用于显示问题消息的TextView
- 一个RadioGroup,用于保存选项Radio Buttons,这可能是答案
- 每个按钮都有4个RadioButton 。
- 提交和清除按钮以存储响应。
同样,给ID给每个组件以及其他属性,如给定的图像和下面的代码所示。在组件上分配的ID有助于该组件在Java文件中轻松找到和使用。
句法:
android:id="@+id/id_name"
此处给出的ID如下:
- RadioGroup:groupradio
- RadioButton1:radia_id1
- RadioButton2:radia_id2
- RadioButton3:radia_id3
- RadioButton4:radia_id4
- 提交按钮:提交
- 清除按钮:清除
这将创建应用程序的UI。
- 步骤3:现在,在用户界面之后,此步骤将创建应用程序后端。为此,打开“ MainActivity。 Java文件”,并使用findViewById()方法实例化XML文件中的组件(RadioGroup,TextView,Clear和Submit Button)。此方法借助分配的ID将创建的对象绑定到UI组件。
通用语法:
ComponentType object = (ComponentType)findViewById(R.id.IdOfTheComponent);
所用组件的语法:
Button submit = (Button)findViewById(R.id.submit);
Button clear = (Button)findViewById(R.id.clear);
RadioGroup radioGroup = (RadioGroup)findViewById(R.id.groupradio); - 步骤4:此步骤涉及在RadioGroup,RadioButtons以及Submit和Clear Button上设置操作。这些操作如下:
- 最初将所有单选按钮取消设置为默认值。这是通过以下命令完成的:
radioGroup.clearCheck();
- 在RadioGroup上添加侦听器。这将有助于您知道用户何时单击任何单选按钮,然后将执行进一步的操作。可以添加侦听器,如下所示:
radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener(){}
- 定义单击单选按钮时要执行的操作。这涉及使用其ID获取已单击的特定单选按钮。然后,此单选按钮将被设置,其余的单选按钮将被重置。
- 在“提交”按钮上添加侦听器,然后单击“清除”按钮。这将用于检查用户何时单击按钮。这样做如下:
submit.setOnClickListener(new View.OnClickListener() {}
clear.setOnClickListener(new View.OnClickListener() {} - 在“提交按钮侦听器”中,设置要执行的操作。这涉及以Toast的形式显示标记的答案。
- 在“清除按钮侦听器”中,设置要执行的操作。这涉及到重置所有单选按钮。
- 最初将所有单选按钮取消设置为默认值。这是通过以下命令完成的:
- 步骤5:现在运行该应用程序,并按以下方式操作:
- 打开应用程序后,它将显示一个带有4个答案的问题以及一个清除并提交按钮。
- 单击任何答案后,该单选按钮将被设置。
- 单击任何其他单选按钮可以设置一个并重置其他按钮。
- 单击提交按钮,将当前标记的答案显示为Toast。
- 单击清除按钮会将所有单选按钮重置为默认状态。
MainActivity的完整代码。下面是RadioButton的Java和activity_main.xml。
activity_main.xml
MainActivity.java
package org.geeksforgeeks.navedmalik.radiobuttons;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
// Define the object for Radio Group,
// Submit and Clear buttons
private RadioGroup radioGroup;
Button submit, clear;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Bind the components to their respective objects
// by assigning their IDs
// with the help of findViewById() method
submit = (Button)findViewById(R.id.submit);
clear = (Button)findViewById(R.id.clear);
radioGroup = (RadioGroup)findViewById(R.id.groupradio);
// Uncheck or reset the radio buttons initially
radioGroup.clearCheck();
// Add the Listener to the RadioGroup
radioGroup.setOnCheckedChangeListener(
new RadioGroup
.OnCheckedChangeListener() {
@Override
// The flow will come here when
// any of the radio buttons in the radioGroup
// has been clicked
// Check which radio button has been clicked
public void onCheckedChanged(RadioGroup group,
int checkedId)
{
// Get the selected Radio Button
RadioButton
radioButton
= (RadioButton)group
.findViewById(checkedId);
}
});
// Add the Listener to the Submit Button
submit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v)
{
// When submit button is clicked,
// Ge the Radio Button which is set
// If no Radio Button is set, -1 will be returned
int selectedId = radioGroup.getCheckedRadioButtonId();
if (selectedId == -1) {
Toast.makeText(MainActivity.this,
"No answer has been selected",
Toast.LENGTH_SHORT)
.show();
}
else {
RadioButton radioButton
= (RadioButton)radioGroup
.findViewById(selectedId);
// Now display the value of selected item
// by the Toast message
Toast.makeText(MainActivity.this,
radioButton.getText(),
Toast.LENGTH_SHORT)
.show();
}
}
});
// Add the Listener to the Submit Button
clear.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v)
{
// Clear RadioGroup
// i.e. reset all the Radio Buttons
radioGroup.clearCheck();
}
});
}
}
输出: