对于Java中的任何操作,需要按两次按钮

时间:2017-07-19 14:40:32

标签: java android button

Android Studio中的按钮有点问题。为了让我的任何按钮工作,他们都需要按两次。我只想让一个人按下这个动作。

下面的一个示例从编辑文本框中获取值并将其插入数据库,然后显示吐司。就像我提到的那样需要按两次按钮输入数据并显示吐司。

public void AddDataHR(View view) {
    buttonAddHR.setOnClickListener(
            new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    boolean isInserted = mydb.insertDataHR(editHR.getText().toString());//Takes value from edittext and send it to insertDataHR within DatabaseHelper
                    if (isInserted == true)
                        Toast.makeText(HeartRate.this, "Data Inserted", Toast.LENGTH_LONG).show();//confirms data was inserted
                    else
                        Toast.makeText(HeartRate.this, "Data Not Inserted", Toast.LENGTH_LONG).show();//error message
                }
            }
    );
}

以下是激活上述代码的按钮的xml。

<Button
    android:id="@+id/buttonAddHR"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/textView4"
    android:layout_alignStart="@+id/textView4"
    android:layout_centerVertical="true"
    android:layout_marginLeft="13dp"
    android:layout_marginStart="13dp"
    android:onClick="AddDataHR"
    android:text="Add Data Manually" />

我是Android Studio和Java的新手,所以我可以让事情发挥作用,但不是正确的。任何帮助将不胜感激!谢谢。

1 个答案:

答案 0 :(得分:5)

问题:

首先点击:使用buttonAddHR.setOnClickListener

在按钮上设置匿名监听器

第二次点击:触发匿名点击监听器

只需使用

public void AddDataHR(View view) {
        boolean isInserted = mydb.insertDataHR(editHR.getText().toString());//Takes value from edittext and send it to insertDataHR within DatabaseHelper
        if (isInserted)
            Toast.makeText(HeartRate.this, "Data Inserted", Toast.LENGTH_LONG).show();//confirms data was inserted
        else
            Toast.makeText(HeartRate.this, "Data Not Inserted", Toast.LENGTH_LONG).show();//error message
}