我有一些简单的代码,我在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("");
}
}
我输入两个数字,当我按清除时,它工作正常,但总按钮不会添加。相反,这种情况发生了:
这可能是我的整数转换或逻辑问题。
答案 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