我正在尝试制作一个基本的转换工具,我将在稍后进行扩展。但是当我从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);
}
});
}
}
答案 0 :(得分:1)
总是有助于发布您的LogCat错误,但看起来您有两个问题:
您无意中创建了名为feet
的两个变量:
这会创建一个本地feet
变量(不是你想要的)
final EditText feet = (EditText) findViewById(R.id.editTextFeet);
使用它来初始化类变量feet
:
feet = (EditText) findViewById(R.id.editTextFeet);
您需要将“公式”转换回字符串:
displayText.setText((dataint + formula) + "");
使用setText(Int)
时,会尝试加载存储在资源中的String值,而setText(String)
则显示传递给函数的String。
答案 1 :(得分:0)
替换此行
displayText.setText(dataint + formula);
与
displayText.setText((dataint + formula)+"");