这可能是一个非常简单的修复方法,但在任何地方我寻找答案似乎都是略有不同的情况。
问题涉及if语句我希望返回一个文本值,即"你好"返回后代替0.00 ...这会产生一个通知,说明要求加倍。 我之前删除了所有格式和* 100乘数,因为我知道这不会起作用但无济于事。
本质上,如何使用if语句返回文本值,这是一个子方法,或者为什么它不能与我的代码一起使用?
任何帮助非常感谢。
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.os.Handler;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
double taxRate, annualSalary;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void onClick(View view) {
switch (view.getId()) {
case R.id.gobutton:
EditText employeename = (EditText) findViewById(R.id.enteredname);
String empname = employeename.getText().toString();
EditText salary = (EditText) findViewById(R.id.enteredsalary);
try {
(annualSalary) = Double.parseDouble(salary.getText().toString());
}catch (NumberFormatException e){
Toast.makeText(this,"please enter a number only!",Toast. LENGTH_SHORT).show();
setContentView(R.layout.activity_main);
break;
}
taxRate=getTaxRate (annualSalary)*100;
String rateStr = String.format("%.0f",taxRate);
setContentView(R.layout.activity_second);
TextView textViewName = (TextView) findViewById(R.id.outputname);
textViewName.setText(empname);
TextView textViewName1 = (TextView) findViewById(R.id.outputtax);
textViewName1.setText(String.format(rateStr)+"%");
break;
case R.id.exitbutton:
//Delay the exit by 1 second at this time
new Handler().postDelayed(new Runnable() {
public void run() {
//finish app
finish();
}
}, 1000);
break;
case R.id.returnbutton:
setContentView(R.layout.activity_main);
break;
}
}
public double getTaxRate(double annualSalary) {
if (annualSalary < 11000.01 ){
return 0.00;
}
else
if (annualSalary <= 42000){
return 0.20;
}
else
return 0.40;
}
}
答案 0 :(得分:0)
中的第一个双
public double getTaxRate(double annualSalary)
是返回类型。在这种情况下,它必须是双倍的。如果要返回String,则必须将其更改为
public String getTaxRate(double annualSalary)