- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试做两件事中的一件。如果我所有的 EditText 都输入了一些长度>0 的数据,那么它应该进入我的数学方程式并将数据放入 EditText dispMinPmt。如果有一个 NULL 值的 EditText 字段,它应该在最后做 Toast。目前,两者都没有发生。也没有要显示的错误。
这是我的 .java:
@SuppressLint("ShowToast")
public void ButtonOnClick(View v)
{
TextView dispMinPmt = (TextView)findViewById(R.id.dispMinPmt);
Intent intent = new Intent(this, MainActivity.class);
switch (v.getId()) {
case R.id.calculate1:
Toast.makeText(getApplicationContext(), "Check 1", Toast.LENGTH_SHORT).show();
EditText nickname = (EditText) findViewById(R.id.editNickname);
if (nickname.getText().toString().length()>0)
{
String debtNickname = nickname.getText().toString();
EditText origBal = (EditText) findViewById(R.id.editOrigBal);
if (origBal.getText().toString().length()>0)
{
String myOrigBal = origBal.getText().toString();
Double originalBalance = Double.parseDouble(myOrigBal);
EditText myAPR = (EditText) findViewById(R.id.editAPR);
if (myAPR.getText().toString().length()>0)
{
String myEditValue2 = myAPR.getText().toString();
Double apr = Double.parseDouble(myEditValue2);
EditText myOrigTerm = (EditText) findViewById(R.id.editOrigTerm);
if (myOrigTerm.getText().toString().length()>0)
{
String myEditValue3 = myOrigTerm.getText().toString();
Double originalTerm = Double.parseDouble(myEditValue3);
double r = apr/1200;
double r1 = Math.pow(r+1,originalTerm);
Double minPmt = (double) ((r+(r/(r1-1))) * originalBalance);
DecimalFormat df = new DecimalFormat("#.##");
minPmt = Double.valueOf(df.format(minPmt));
dispMinPmt.setText("" + String.valueOf(minPmt) + "Mo.");
}
}
}
}
else
{
Toast.makeText(getApplicationContext(), "Please complete all fields", Toast.LENGTH_SHORT).show();
}
break;
}
}
这是我的布局 (.xml)
<TableLayout 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:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".DebtInput" >
<TableRow
android:id="@+id/tableRow1"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/textNickname"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Debt Nickname" />
<EditText
android:id="@+id/editNickname"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:inputType="text"
android:text="Car Loan"
android:textAppearance="?android:attr/textAppearanceSmall" />
</TableRow>
<TableRow
android:id="@+id/tableRow2"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/textOrigBal"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Original Balance" />
<EditText
android:id="@+id/editOrigBal"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:inputType="numberDecimal"
android:text="10000.00"
android:textAppearance="?android:attr/textAppearanceSmall" />
</TableRow>
<TableRow
android:id="@+id/tableRow3"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/textAPR"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="APR (%)" />
<EditText
android:id="@+id/editAPR"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:inputType="numberDecimal"
android:text="0.00"
android:textAppearance="?android:attr/textAppearanceSmall" />
</TableRow>
<TableRow
android:id="@+id/tableRow4"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/textOrigTerm"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Loan Term (Months)" />
<EditText
android:id="@+id/editOrigTerm"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:inputType="number"
android:text="60"
android:textAppearance="?android:attr/textAppearanceSmall" />
</TableRow>
<TableRow
android:id="@+id/tableRow5"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/textOutBal"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Outstanding Balance" />
<EditText
android:id="@+id/editOutBal"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:inputType="numberDecimal"
android:text="1000.00"
android:textAppearance="?android:attr/textAppearanceSmall" />
</TableRow>
<TableRow
android:id="@+id/calcButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<Button
android:id="@+id/calculate1"
style="?android:attr/buttonStyleSmall"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="Calculate" />
</TableRow>
<TableRow
android:id="@+id/tableRow6"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/textMinPmt"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Minimum Payment" />
<TextView
android:id="@+id/dispMinPmt"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text=""
android:textAppearance="?android:attr/textAppearanceSmall" />
</TableRow>
<TableRow
android:id="@+id/tableRow7"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/textAddPmt"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Additional Payment" />
<EditText
android:id="@+id/editAddPmt"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:inputType="numberDecimal"
android:text="100.00"
android:textAppearance="?android:attr/textAppearanceSmall" />
</TableRow>
<TableRow
android:id="@+id/calcButton2"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<Button
android:id="@+id/calculate2"
style="?android:attr/buttonStyleSmall"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="Calculate" />
</TableRow>
<TableRow
android:id="@+id/tableRow8"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/textNewPmt"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="New Payment" />
<TextView
android:id="@+id/dispNewPmt"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text=""
android:textAppearance="?android:attr/textAppearanceSmall" />
</TableRow>
<TableRow
android:id="@+id/buttons"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<Button
android:id="@+id/add"
style="?android:attr/buttonStyleSmall"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="Add" />
<Button
android:id="@+id/clear"
style="?android:attr/buttonStyleSmall"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="Clear" />
</TableRow>
最佳答案
您的 IF 语句嵌套过多。这是一种不好的做法。此外,您的 else 语句仅在不满足第一个条件时才会触发。如果不满足任何后续条件,则不会发生任何事情。
我利用自由来稍微整理一下您的代码:
public void ButtonOnClick(View v)
{
TextView dispMinPmt = (TextView)findViewById(R.id.dispMinPmt);
Intent intent = new Intent(this, MainActivity.class);
switch (v.getId()) {
case R.id.calculate1:
Toast.makeText(getApplicationContext(), "Check 1", Toast.LENGTH_SHORT).show();
EditText nickname = (EditText) findViewById(R.id.editNickname);
EditText origBal = (EditText) findViewById(R.id.editOrigBal);
EditText myAPR = (EditText) findViewById(R.id.editAPR);
EditText myOrigTerm = (EditText) findViewById(R.id.editOrigTerm);
String nicknameStr = nickname.getText().toString();
String origBalStr = origBal.getText().toString();
String myAPRStr = myAPR.getText().toString();
String myOrigTermStr = myOrigTerm.getText().toString();
double origTermValue;
boolean origTermIsParsable;
try
{
origTermValue = Double.parseDouble(origBalStr);
origTermIsParsable = true;
}
catch (NumberFormatException e)
{
origTermIsParsable = false;
}
if (nicknameStr.length() > 0 && origBalStr.length() > 0 && myAPRStr.length() > 0 && myOrigTermStr.length() > 0 && origTermIsParsable)
{
Double originalTerm = origTermValue;
double r = apr/1200;
double r1 = Math.pow(r+1,originalTerm);
Double minPmt = (double) ((r+(r/(r1-1))) * originalBalance);
DecimalFormat df = new DecimalFormat("#.##");
minPmt = Double.valueOf(df.format(minPmt));
dispMinPmt.setText("" + String.valueOf(minPmt) + "Mo.");
}
else
{
Toast.makeText(getApplicationContext(), "Please complete all fields", Toast.LENGTH_SHORT).show();
}
break;
}
}
一般来说,在彼此内部嵌套如此多的 IF 是您应该始终尽量避免的事情。如果你有两个 if 一个在另一个里面,去掉其中一个,并用一个“AND”语句组合条件。
希望这有帮助:)
关于java - if/else 语句不触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19205674/
创建一个“海盗对话”,可以选择左手或右手。我希望它对“左”和“右”的不同拼写做出积极的回答(正如您将在代码中看到的那样),但是,当我为所有非“右”或“左”的输入添加最终的“else”代码时,它给了我一
With 语句 对一个对象执行一系列的语句。 With object statements End With 参数 object 必需的部分
While...Wend 语句 当指定的条件为 True 时,执行一系列的语句。 While condition  ; Version [stat
所以我正在处理的代码有一个小问题。 while True: r = input("Line: ") n = r.split() if r == " ":
我有一个对象数组: var contacts = [ { "firstName": "Akira", "lastName": "Laine", "number"
int main() { int f=fun(); ... } int fun() { return 1; return 2; } 在上面的程序中,当从main函数中调用一个
我的项目中有很多 if 语句、嵌套 if 语句和 if-else 语句,我正在考虑将它们更改为 switch 语句。其中一些将具有嵌套的 switch 语句。我知道就编译而言,switch 语句通常更
Rem 语句 包含程序中的解释性注释。 Rem comment 或 ' comment comment 参数是需要包含的注释文本。在 Rem 关键字和 comment 之间应有一个空格。
ReDim 语句 在过程级中声明动态数组变量并分配或重新分配存储空间。 ReDim [Preserve] varname(subscripts) [, varname(subscripts)]
Randomize 语句 初始化随机数生成器。 Randomize [number] number 参数可以是任何有效的数值表达式。 说明 Randomize 使用 number 参数初始
Public 语句 定义公有变量并分配存储空间。在 Class 块中定义私有变量。 Public varname[([subscripts])][, varname[([subscripts])
Sub 语句 声明 Sub 过程的名称、参数以及构成其主体的代码。 [Public [Default]| Private] Sub name [( arglist )]
Set 语句 将对象引用赋给一个variable或property,或者将对象引用与事件关联。 Set objectvar = {objectexpression | New classname
我有这个代码块,有时第一个 if 语句先运行,有时第二个 if 语句先运行。我不确定为什么会这样,因为我认为 javascript 是同步的。 for (let i = 0; i < dataObje
这是一个 javascript 代码,我想把它写成这样:如果此人回答是,则回复“那很酷”,如果此人回答否,则回复“我会让你开心”,如果此人回答的问题包含"is"或“否”,请说“仅键入”是或否,没有任何
这是我的任务,我尝试仅使用简短的 if 语句来完成此任务,我得到的唯一错误是使用“(0.5<=ratio<2 )”,除此之外,构造正确吗? Scanner scn = new Scanner(
有没有办法在 select 语句中使用 if 语句? 我不能在这个中使用 Case 语句。实际上我正在使用 iReport 并且我有一个参数。我想要做的是,如果用户没有输入某个参数,它将选择所有实例。
这个问题在这里已经有了答案: 关闭 11 年前。 Possible Duplicate: If vs. Switch Speed 我将以 C++ 为例,但我要问的问题不是针对特定语言的。我的意思是一
Property Set 语句 在 Class 块中,声明名称、参数和代码,这些构成了将引用设置到对象的 Property 过程的主体。 [Public | Private] Pro
Property Let 语句 在 Class 块中,声明名称、参数和代码等,它们构成了赋值(设置)的 Property 过程的主体。 [Public | Private] Prop
我是一名优秀的程序员,十分优秀!