如何获取整数值并将其存储到变量中?

时间:2014-02-26 17:27:07

标签: android

我正在尝试输入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显示没有错误。但应用程序没有开始..

3 个答案:

答案 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());