我试图让按钮只工作一次,所以我做了这个解决方案,但有时它会继续工作两次或更多次点击,如何解决?
Button bton = (Button)findViewById(R.id.ajoutTroisDemi);
bton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
v.setClickable(false);
v.setEnabled(false);
ajouter(v);
Intent l = new Intent(ActivityTroisQuart.this,ActivityTroisDemi.class);
startActivity(l);
Toast.makeText(getApplicationContext(), "Données Enregistrées", Toast.LENGTH_SHORT).show();
}
public void ajouter(View v) {
db.open();
EditText rm_26 = (EditText)findViewById(R.id.rm_26);
String rm_26_1ts = rm_26.getText().toString();
SharedPreferences prefs4 = getSharedPreferences(PREFS_NAME, MODE_PRIVATE);
prefs4.edit().putString(Ordr, rm_26_1ts).commit();
int nb = prefs4.getInt(B, 0);
long id = prefs4.getLong(ID, 0);
db.insertMMbreMenage1(id,rm_26_1ts);
int test = nb-1;
Editor editor = prefs4.edit();
editor.putInt("nb", test);
editor.commit();
db.close();
}
});
答案 0 :(得分:2)
尝试直接
final Button bton = (Button)findViewById(R.id.ajoutTroisDemi);
bton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
bton.setEnabled(false);
ajouter(v);
Intent l = new Intent(ActivityTroisQuart.this,ActivityTroisDemi.class);
startActivity(l);
Toast.makeText(getApplicationContext(), "Données Enregistrées", Toast.LENGTH_SHORT).show();
}
}
答案 1 :(得分:1)
替换您的代码
bton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
v.setClickable(false);
v.setEnabled(false);
ajouter(v);
Intent l = new Intent(ActivityTroisQuart.this,ActivityTroisDemi.class);
startActivity(l);
Toast.makeText(getApplicationContext(), "Données Enregistrées", Toast.LENGTH_SHORT).show();
}
通过
bton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
bton.setEnabled(false);
Intent l = new Intent(ActivityTroisQuart.this,ActivityTroisDemi.class);
startActivity(l);
Toast.makeText(getApplicationContext(), "Données Enregistrées", Toast.LENGTH_SHORT).show();
}
你的问题将得到解决。
答案 2 :(得分:1)
我建议您使用条件语句来测试Button是否在按下按钮所需的任务之后是否启用了。
答案 3 :(得分:0)
1.您可以从代码中删除这些行,因此您的按钮无法点击。
v.setClickable(false);
v.setEnabled(false);
2。如果你真的需要这种方法。您可以在代码完成后尝试启用它们。像这样。
public void onClick(View v) {
v.setClickable(false);
v.setEnabled(false);
ajouter(v);
Intent l = new Intent(ActivityTroisQuart.this,ActivityTroisDemi.class);
startActivity(l);
Toast.makeText(getApplicationContext(), "Données Enregistrées", Toast.LENGTH_SHORT).show();
v.setClickable(true);
v.setEnabled(true);
}