简单的计算器程序没有显示正确的输

时间:2013-03-31 23:56:58

标签: java android

我有一些简单的代码,我在EditText字段中输入两个数字,将它们添加到一起,并在TextView中显示。

这是我的代码:

<TextView
    android:id="@+id/textView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/hello_world" 
    android:visibility="invisible"/>

<EditText
    android:id="@+id/editText1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/textView1"
    android:layout_below="@+id/textView1"
    android:layout_marginTop="32dp"
    android:ems="10"
    android:inputType="number" >

    <requestFocus />
</EditText>

<EditText
    android:id="@+id/editText2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/editText1"
    android:layout_below="@+id/editText1"
    android:layout_marginTop="21dp"
    android:ems="10"
    android:inputType="number" />

<Button
    android:id="@+id/button2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBaseline="@+id/button1"
    android:layout_alignBottom="@+id/button1"
    android:layout_alignRight="@+id/editText2"
    android:text="Clear"
    android:onClick="Clicked" />

<Button
    android:id="@+id/button1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_below="@+id/editText2"
    android:layout_marginTop="35dp"
    android:text="Total"
    android:onClick="Clicked" />

这是我的Clicked方法:

public void Clicked(View v) {    
    int  total; 
    EditText t1= (EditText)findViewById(R.id.editText1);
    EditText t2= (EditText)findViewById(R.id.editText2);
    TextView tv=  (TextView)findViewById(R.id.textView1);

    if(v.getId()==R.id.button1)
    {     
        total= Integer.parseInt(t1.getText().toString()+t2.getText().toString());
        tv.setText(total);
        tv.setVisibility(1);
    }
    else if (v.getId()==R.id.button2)
    {
        t1.setText("");
        t2.setText("");
    }
}

我输入两个数字,当我按清除时,它工作正常,但总按钮不会添加。相反,这种情况发生了:

enter image description here

这可能是我的整数转换或逻辑问题。

2 个答案:

答案 0 :(得分:3)

改变这个:

total= Integer.parseInt(t1.getText().toString()+t2.getText().toString());

对此:

int v1 = Integer.parseInt(t1.getText().toString());
int v2 = Integer.parseInt(t2.getText().toString());
total = v1 + v2;

答案 1 :(得分:1)

它已停止,因为您可能正在为TextView的setText设置Int值。您需要将其转换为String

textView.setText(CharSequence text)

int v1 = Integer.parseInt(t1.getText().toString());
int v2 = Integer.parseInt(t2.getText().toString());
total = v1 + v2;
tv.setText(total+""); //this converts total to string
//tv.setText(total.toString());   //can use either