📜  Android |如何在Android应用程序中添加单选按钮?

📅  最后修改于: 2021-05-13 17:08:46             🧑  作者: Mango

先决条件:

  • 适用于初学者的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组件。

    通用语法:

    所用组件的语法:

  • 步骤4:此步骤涉及在RadioGroup,RadioButtons以及Submit和Clear Button上设置操作。这些操作如下:
    1. 最初将所有单选按钮取消设置为默认值。这是通过以下命令完成的:
      radioGroup.clearCheck();
    2. 在RadioGroup上添加侦听器。这将有助于您知道用户何时单击任何单选按钮,然后将执行进一步的操作。可以添加侦听器,如下所示:
    3. 定义单击单选按钮时要执行的操作。这涉及使用其ID获取已单击的特定单选按钮。然后,此单选按钮将被设置,其余的单选按钮将被重置。
    4. 在“提交”按钮上添加侦听器,然后单击“清除”按钮。这将用于检查用户何时单击按钮。这样做如下:
    5. 在“提交按钮侦听器”中,设置要执行的操作。这涉及以Toast的形式显示标记的答案。
    6. 在“清除按钮侦听器”中,设置要执行的操作。这涉及到重置所有单选按钮。
  • 步骤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();
            }
        });
    }
}


输出: