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的新手,所以我可以让事情发挥作用,但不是正确的。任何帮助将不胜感激!谢谢。
答案 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
}