我正在开发我的第一个android Calculator应用程序。我遇到了一个缺陷。我添加了几个按钮,单击这些按钮,它会将相应的文本放在EditText
字段上。主要问题如下所述,
在运行项目时,必须单击两次按钮才能将相应的文本首次放在EditText
字段上。例如,Button1
在点击时将{1}放在EditText
字段上。在运行时,首先单击该按钮不执行任何操作。只有在第二次点击时,它才会在EditText
字段上显示“1”。
守则如下,
XML按钮和EditField,
<EditText
android:id="@+id/textView1"
android:layout_width="match_parent"
android:layout_height="60dp"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:ellipsize="end"
android:ems="10"
android:gravity="right"
android:hint="@string/textView1" />
<Button
android:id="@+id/button1"
android:layout_width="60dp"
android:layout_height="60dp"
android:hint="@string/button1"
android:onClick="set1" />
MainActivity.java
Button onClick的相应功能,
public void set1(View v){
final Button button1 = (Button) findViewById(R.id.button1);
button1.setOnClickListener(new OnClickListener(){
public void onClick(View v)
{
EditText tv = (EditText) findViewById(R.id.textView1);
String text=tv.getText().toString();
tv.setText(text+"1");
}
});
}
答案 0 :(得分:7)
按如下方式更改set1()
方法,
public void set1(View v)
{
EditText tv = (EditText) findViewById(R.id.textView1);
String text=tv.getText().toString();
tv.setText(text+"1");
}
答案 1 :(得分:0)
如果您在xml中调用点击按钮的set1()
方法,那么您不需要再次在该方法中找到按钮的ID。所以简直就是这样,
public void set1(View v)
{
EditText tv = (EditText) findViewById(R.id.textView1);
String text=tv.getText().toString();
tv.setText(text+"1");
}
现在你的xml for按钮将是
android:onClick="set1"