美好的一天。 我是 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/