0

我正在尝试制作一个基本的转换工具,稍后我将对其进行扩展。但是当我从 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);

        }
    });

}

}

4

2 回答 2

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) + "");
    

当您使用 时setText(Int),这会尝试加载存储在资源中的字符串值,同时setText(String)显示传递给函数的字符串。

于 2012-10-27T22:29:04.557 回答
0

替换这一行

displayText.setText(dataint + formula);

displayText.setText((dataint + formula)+"");
于 2012-10-27T22:28:52.970 回答