需要帮助java中的一些房地产数学

时间:2011-01-21 18:58:36

标签: java android math

需要帮助一些房地产数学在java中每次爆炸

public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        // This app total real estate fees for a client selling a house

        Button button = (Button) findViewById(R.id.Button01);

         //  Sample data for priceText 360000
        final EditText priceText = (EditText) findViewById(R.id.EditText01);
        // Sample data for rateText .04
        final EditText rateText = (EditText) findViewById(R.id.EditText02);

        button.setOnClickListener(new OnClickListener()
 {
 public void onClick(View v) 
 {
 Toast.makeText(jsclosingcost.this, "Doing Closing Cost Breakdown", Toast.LENGTH_SHORT)
                //  Sample data for priceText 360000
  float fPrice=Float.parseFloat(priceText.getText().toString() + "");
                 // Sample data for rateText .04
  float fRate=Float.parseFloat(rateText.getText().toString() + "");

  float fRealEsate = fPrice * fRate;
  Toast.makeText(jsclosingcost.this, "Real Estate Brokerage Fee: " + fRealEsate, Toast.LENGTH_SHORT).show();
 }
 });


    }

1 个答案:

答案 0 :(得分:7)

就像其他人所说的那样,“每次都爆发”并没有给我们带来很多好处。也就是说,我把它扔进一个测试项目,发现它没有编译 - 你在这一行的末尾错过了一个分号:


Toast.makeText(jsclosingcost.this, "Doing Closing Cost Breakdown", Toast.LENGTH_SHORT)

通过在该行添加分号,我能够编译并运行它而没有问题。

但值得注意的是......


您不需要在字符串中附加空字符串:


float fPrice=Float.parseFloat(priceText.getText().toString() + "");
float fRate=Float.parseFloat(rateText.getText().toString() + "");

以这种方式追加一个空字符串是确保将事物转换为String对象的一个​​老技巧,但通过在对象上调用toString,您已经保证它们是String对象。


我不知道什么被认为是“最佳实践”,但Toast.makeText方法的第一个参数是“Context”对象。从传递给你的onClick处理程序的视图对象中获取Context会让我感觉更舒服,如下所示:


Toast.makeText(v.getContext(), "Doing Closing Cost Breakdown", Toast.LENGTH_SHORT);

您的编辑字段没有任何类型的检查,以防有人未能填写它们。例如,如果某人未能在EditText01中输入值并按下您的按钮,您将最终结束在这里有一个NullPointerException:


float fPrice=Float.parseFloat(priceText.getText().toString() + "");

你可以通过做这样的事情轻松防范这一点,而不是:


public void onClick(View v) 
{
   Toast.makeText(v.getContext(), "Doing Closing Cost Breakdown", Toast.LENGTH_SHORT);

   float fPrice, fRate;

   try
   {
      fPrice = Float.parseFloat(priceText.getText().toString());
      fRate = Float.parseFloat(rateText.getText().toString());

      float fRealEsate = fPrice * fRate;
      Toast.makeText(v.getContext(), "Real Estate Brokerage Fee: " 
         + fRealEsate, Toast.LENGTH_SHORT).show();
   }
   catch (NumberFormatException nfe)
   {
      Toast.makeText(v.getContext(), 
         "Please enter numeric values for Price and Rate.", 
         Toast.LENGTH_SHORT).show();
   } 
}

请将按钮和编辑文本框命名为Button01和EditText02。使用好名字会让你的生活(和其他人的生活)变得更容易。