2017-07-19 118 views
2

我在Android Studio中遇到了一些小问题。为了让我的任何按钮都能工作,他们都需要按两次。我只想要一个媒体采取行动。按钮需要按下两次才能在Java中执行任何操作

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

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相当陌生,所以我可以让事情能够正常工作,但并不正确。任何帮助将不胜感激!谢谢。

回答

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 
} 
相关问题