EditText将String保存为Integer,然后将它乘以3不起作用?

时间:2012-10-27 22:26:54

标签: java android android-edittext

我正在尝试制作一个基本的转换工具,我将在稍后进行扩展。但是当我从EditText获取信息并将其转换为Integer然后尝试将其相乘时,我的应用程序在按钮单击时崩溃。           我的Java代码如下,这个站点的新成员,但现在已经使用它几周了,所以谢谢你们已经帮助了这么多


 package com.example.mayconverter;

 import android.app.Activity;
 import android.os.Bundle;
 import android.view.View;
 import android.widget.Button;
 import android.widget.EditText;
 import android.widget.TextView;

 public class Feetyards extends Activity{

EditText feet;
Button convertFeet;
int formula;
TextView displayText;
@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.feet_yards);

    displayText =(TextView) findViewById(R.id.displayText);
    formula = 3;
    convertFeet = (Button) findViewById(R.id.buttonFeet);   
    final EditText feet = (EditText) findViewById(R.id.editTextFeet);




    convertFeet.setOnClickListener(new View.OnClickListener() {

        public void onClick(View v) {
            // TODO Auto-generated method stub
            String data = feet.getText().toString();
            final int dataint = Integer.parseInt(data);


            displayText.setText(dataint + formula);

        }
    });

}

}

2 个答案:

答案 0 :(得分:1)

总是有助于发布您的LogCat错误,但看起来您有两个问题:

  1. 您无意中创建了名为feet两个变量:

    这会创建一个本地feet变量(不是你想要的)

    final EditText feet = (EditText) findViewById(R.id.editTextFeet);
    

    使用它来初始化类变量feet

    feet = (EditText) findViewById(R.id.editTextFeet);
    
  2. 您需要将“公式”转换回字符串:

    displayText.setText((dataint + formula) + "");
    
  3. 使用setText(Int)时,会尝试加载存储在资源中的String值,而setText(String)则显示传递给函数的String。

答案 1 :(得分:0)

替换此行

displayText.setText(dataint + formula);

displayText.setText((dataint + formula)+"");