我正在尝试输入edittext值,这是一个数字并将其保存到int类型的变量中。我想在那之后对那个int int变量做一些操作.. 这是该代码的一部分。
inputNum = Integer.parseInt(Input.getText());
它给我一个错误 - 整数类型中的方法parseInt(String)不适用于参数。
我需要将edittext中输入的数值存储到变量inputNum中,这是一个整数类型。 我的完整代码
package com.shukla.rahul.mycalculator;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class MainActivity extends Activity {
TextView Display;
EditText Input;
Button X2, X3, Clear;
int result;
String Over = "Stopped";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//a = 1;
//int inputNum = Integer.parseInt(Input.getText().toString());
X2 = (Button) findViewById(R.id.bX2);
X3 = (Button) findViewById(R.id.bX3);
Clear = (Button) findViewById(R.id.bClear);
Input = (EditText) findViewById(R.id.etUserinput);
Display = (TextView) findViewById(R.id.tvDisplay);
X2.setOnClickListener(new View.OnClickListener() {
int inputNum = Integer.parseInt(Input.getText().toString());
@Override
public void onClick(View v) {
if (inputNum <= 10) {
result = inputNum * 2;
Display.setText("2 X " + inputNum + " = " + result);
inputNum++;
}else Display.setText("" + Over);
}
});
X3.setOnClickListener(new View.OnClickListener() {
int inputNum = Integer.parseInt(Input.getText().toString());
@Override
public void onClick(View v) {
if (inputNum <= 10) {
result = inputNum * 3;
Display.setText("3 X " + inputNum + " = " + result);
inputNum++;
}else Display.setText("" + Over);
}
});
Clear.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
result = 0;
//int inputNum = 1;
Display.setText("" + result);
}
});
}
}
我不确定我应该把这行代码放在哪里
int inputNum = Integer.parseInt(Input.getText().toString());
我应该在哪里声明inputNum变量..eclipse显示没有错误。但应用程序没有开始..
答案 0 :(得分:3)
您收到错误,因为EditText.getText()
返回Editable
而不是String
,而Integer.parseInt(String s)
则返回String
作为参数。
尝试:
// etInput is an EditText
int inputNum = Integer.valueOf(etInput.getText().toString());
在这种情况下,您将可编辑转换为字符串,因此可以进行解析。
答案 1 :(得分:1)
假设您有一些编辑文本:
EditText edit = (EditText) mLayout.findViewById(R.id.user_edit);
你会做以下事情:
String val = edit.getText().toString();
int value = Integer.valueOf(val);
编辑:
你有:
X2.setOnClickListener(new View.OnClickListener() {
int inputNum = Integer.parseInt(Input.getText().toString());
@Override
public void onClick(View v) {
if (inputNum <= 10) {
result = inputNum * 2;
Display.setText("2 X " + inputNum + " = " + result);
inputNum++;
}else Display.setText("" + Over);
}
});
你需要搬家:
int inputNum = Integer.parseInt(Input.getText().toString());
以便该方法如下:
X2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int inputNum = Integer.parseInt(Input.getText().toString());
if (inputNum <= 10) {
result = inputNum * 2;
Display.setText("2 X " + inputNum + " = " + result);
inputNum++;
}else Display.setText("" + Over);
}
});
答案 2 :(得分:0)
假设Input
的类型为EditText
,那么你必须这样做:
inputNum = Integer.parseInt(Input.getText().toString());