java - ANDROID - RadioButton Switch 或 IF 如何使用?

标签 java android

美好的一天。 我是 Java 和 Android 的新手。 我正在尝试制作一个简单的应用程序,即使是为了集中学习,但我有一些疑问。 我打算提出如下申请: RadioGroup 中的两个 RadioButton; 三个EditText; 一键式。

用户会选择您想要的 RadioButton,不久之后会告知现金值(value)(例如:$1,000.00、$5,000.00 ...); 通知时间后(例:3个月、5个月、12个月……); 最后告知要收取的“%”利息。 (例如:2、5、10 ...)。

当用户点击按钮进行计算时,您的屏幕上应该会看到一条消息,告知全部金额。

我的疑问是: 我在获取有关 RadioButton 的信息时遇到问题,我无法使其进入用户所需的选项。 已经使用过 IF,现在我正在尝试 SWITCH。 请,如果有人知道我做错了什么并告诉我,我非常感谢你,记住我现在开始使用 Java 和 Android。对不起我的英语,因为我说另一种语言,我希望你能理解我。谢谢!


Java代码

包 com.example.cleberspirlandeli.calculajuros;

import android.app.AlertDialog;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.widget.*;
import android.view.*;

public class CalculaJuros extends ActionBarActivity implements View.OnClickListener{

    private RadioButton rdbDias;
    private RadioButton rdbMeses;
    private Button btnCalcular;
    private EditText txtTempo;
    private EditText txtJuros;
    private EditText txtValor;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_calcula_juros);

        rdbDias = (RadioButton)findViewById(R.id.rdbDias);
        rdbMeses = (RadioButton)findViewById(R.id.rdbMeses);
        btnCalcular = (Button)findViewById(R.id.btnCalcular);
        txtTempo = (EditText)findViewById(R.id.txtTempo);
        txtJuros = (EditText)findViewById(R.id.txtJuros);
        txtValor = (EditText)findViewById(R.id.txtValor);

        btnCalcular.setOnClickListener(this);
    } //FIM Protected Void

        public void onClick(View v) {

            double resultado1 = 0;
            double resultado2 = 0;

            String v1 = txtTempo.getText().toString();
            String v2 = txtJuros.getText().toString();
            String v3 = txtValor.getText().toString();

            if (v1.trim().isEmpty() || v2.trim().isEmpty() || v3.trim().isEmpty()) {
                AlertDialog.Builder dlg = new AlertDialog.Builder(this);
                dlg.setMessage("Ha Campos Em Branco");
                dlg.setNeutralButton("Ok", null);
                dlg.show();

            } else {

            //    switch (R.id) {
            //        case R.id.rdbDias:
                        if (rdbDias.isSelected() == true) {
                            double valorTempo = Double.parseDouble(txtTempo.getText().toString());
                            double valorJuros = Double.parseDouble(txtJuros.getText().toString());
                            double valorValor = Double.parseDouble(txtValor.getText().toString());

                                for (int i = 0; i < valorTempo; i++) {
                                    resultado1 = (valorValor * valorJuros) / 100;
                                    resultado2 = valorValor + resultado1;
                                } // FIM FOR

                            AlertDialog.Builder dlg = new AlertDialog.Builder(this);
                            dlg.setMessage("RadioButton1 - Valor Total : R$" + resultado2);
                            dlg.setNeutralButton("Ok", null);
                            dlg.show();

                        } // END IF
            //            break;

            //        case R.id.rdbMeses:
                      else if (rdbMeses.isSelected() == true) {
                            double valorTempo2 = Double.parseDouble(txtTempo.getText().toString());
                            double valorJuros2 = Double.parseDouble(txtJuros.getText().toString());
                            double valorValor2 = Double.parseDouble(txtValor.getText().toString());

                                for (int i = 0; i < valorTempo2; i++) {
                                    resultado1 = (valorValor2 * valorJuros2) / 100;
                                    resultado2 = valorValor2 + resultado1;
                                } // FIM FOR

                            AlertDialog.Builder dlg2 = new AlertDialog.Builder(this);
                            dlg2.setMessage("RadioButton2 - Valor Total : R$" + resultado2);
                            dlg2.setNeutralButton("Ok", null);
                            dlg2.show();

                        } // END IF


              //          break;
        //        }
            }
        }


    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_calcula_juros, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();

        //noinspection SimplifiableIfStatement
        if (id == R.id.action_settings) {
            return true;
        }

        return super.onOptionsItemSelected(item);
    }
} // END PUBLIC CLASS






------------------------------------------------------------------------
.xml Code

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
    android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".CalculaJuros"
    android:orientation="vertical">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:text="Bem Vindo"
        android:id="@+id/textView"
        android:layout_gravity="center_horizontal" />

    <RadioGroup
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal">

        <RadioButton
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:text="DIAS"
            android:id="@+id/rdbDias"
            android:checked="true" />

        <RadioButton
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:text="MESES"
            android:id="@+id/rdbMeses"
            android:checked="false" />
    </RadioGroup>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:text="Valor R$"
        android:id="@+id/textView2" />

    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:inputType="numberDecimal"
        android:ems="10"
        android:id="@+id/txtValor" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:text="Tempo"
        android:id="@+id/textView3" />

    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:inputType="numberDecimal"
        android:ems="10"
        android:id="@+id/txtTempo" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:text="Juros ( % )"
        android:id="@+id/textView4" />

    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:inputType="numberDecimal"
        android:ems="10"
        android:id="@+id/txtJuros" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Calcular"
        android:id="@+id/btnCalcular"
        android:layout_gravity="center_horizontal" />

</LinearLayout>

最佳答案

不必检查isSelected 方法是否等于true。尝试更改您的 if 语句,如下例所示:

if (rdbDias.isSelected()) {
     //do something
}
else {
     //do something else
}

如果你有两个以上的单选按钮,你可以使用if、else if、else if、else等格式。

您还可以为单选按钮使用开关格式。如果您更愿意使用开关格式来检查单选按钮,这里是 Android 开发人员文档中的示例:

    public void onRadioButtonClicked(View view) {
    // Is the button now checked?
    boolean checked = ((RadioButton) view).isChecked();

    // Check which radio button was clicked
    switch(view.getId()) {
        case R.id.radio_pirates:
            if (checked)
                // Pirates are the best
            break;
        case R.id.radio_ninjas:
            if (checked)
                // Ninjas rule
            break;
    }
}

您可以在此处查看有关单选按钮的 Android 开发人员文档的更多详细信息:http://developer.android.com/guide/topics/ui/controls/radiobutton.html

关于java - ANDROID - RadioButton Switch 或 IF 如何使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32402183/

相关文章:

android - RIL_REQUEST_SETUP_DATA_CALL 参数

android - 用 gradle 构建 android 的最佳实践是什么?

Android:如何更改按钮的默认形状?

java - 两个 JVM 上的单例

java - 处理屏幕方向变化

java - 最后一个成功发送到服务器的数据包是在 79,547 毫秒之前。比服务器配置值 'wait_timeout' 长

php - Android:如何从远程服务器获取图像

java - 在 log4j2 中按类名过滤

java - Java从文件中扫描每个字符

android - 我怎样才能结合两个android项目