int to string然后输入

时间:2012-08-04 23:39:19

标签: java android android-edittext int

我正在尝试创建一个用户输入值的Android应用程序然后按下面的按钮。当他们按下按钮时,我希望它将编辑文本值添加到自身,然后在屏幕上显示结果。例如,如果用户在编辑文本中键入两个,当他们按下按钮时,我希望应用程序执行2 + 2,然后在屏幕上显示结果4。这是我到目前为止所拥有的......

int AnsNum;
EditText Km;
Button KmPL;
TextView Ans;

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    Km = (EditText) findViewById(R.id.etKm);
    KmPL = (Button) findViewById(R.id.button1);
    Ans = (TextView) findViewById(R.id.tvAns);

    KmPL.setOnClickListener(new View.OnClickListener() {

        public void onClick(View v) {
            // TODO Auto-generated method stub
            Km = (EditText) findViewById(R.id.etKm);
            int etKm = new Integer(Km.getText().toString()).intValue();

            int AnsNum = etKm+etKm;
            Ans.setText(AnsNum);        
        }
    });
}

在主java文件中......

<TextView
    android:id="@+id/tvAns"
    android:textSize="100dp"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:gravity="center"
    android:text="0" />

<EditText
    android:id="@+id/etKm"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:hint="Km"
    android:textSize="100dp"
    android:inputType="numberSigned" />

<Button
    android:id="@+id/button1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textSize="75dp"
    android:text="Km per Litres" />

在main.xml文件中。然而,每当我尝试在我的手机或模拟器上运行应用程序天气时,它表示它已意外停止,请再试一次。我曾多次尝试,但它不起作用。

我知道这可能是一个愚蠢的问题,但我对编程很陌生,如果你能教会我做错了什么,它会帮助我加载。

2 个答案:

答案 0 :(得分:0)

试试这个:

Km = (EditText) findViewById(R.id.etKm);
int etKm = Integer.parseInt(Km.getText().toString());
int AnsNum = etKm+etKm;
Ans.setText(AnsNum+"");

我通常只打印数字类型后跟+“”,因为它会转换为字符串...

我无法在这里测试,所以你需要告诉我是否有效

答案 1 :(得分:0)

我认为你的主要问题在于,当你写:

Ans.setText(AnsNum);

您正试图致电TextView.setText(int resId),这绝对不是您想要的。相反,正如Ivan Seidel所说,你应该打电话给

Ans.setText("" + AnsNum);

使用string concatenation operator将AnsNum转换为String(同样,这将由编译器优化,不使用连接运算符,而是使用StringBuilder类,因为这样更有效)。


此外,而不是:

int etKm = new Integer(Km.getText().toString()).intValue();

最好像这样调用类Integer public static Integer valueOf(String s)的静态方法:

int etKm = Integer.valueOf(Km.getText().toString());

它返回Integer objet ,它会自动转换为int类型