我有以下功能可以将数据保存在数据库中,其中“SaveData”是我的按钮的 onClick 方法,但我希望它在单击 1 次后禁用该按钮,以避免一直保存,我的功能是一个,我认为它是用 onclicklistener 完成的,但我发现它不是......:
public void GuardarDatos(View view) {
int primero = Integer.parseInt(Primero1.getText().toString());
finalizar =(ImageButton) findViewById(R.id.Guardar) ;
BaseHelper baseHelper = new BaseHelper (this,"DEMODB",null,1);
SQLiteDatabase db = baseHelper.getWritableDatabase();
if(db!=null){
ContentValues registronuevo = new ContentValues();
registronuevo.put("Primero",primero);
long i = db.insert("Notas",null,registronuevo);
if ( i>0)
Toast.makeText(this,"Puntuación guardada",Toast.LENGTH_SHORT).show();
finalizar.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v){
onStop(); //Se supone que esto basta pero no. No funciona
}
});
}
}
更新:
finalizar = (ImageButton) findViewById(R.id.Guardar);
finalizar.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
//ejecuta el método
GuardarDatos(); // --> Aquí me obliga a pasarle algo ,
// pone : The method GuardarDatos(View) in the type Tiempoacabadobebe is not applicable for the arguments ()
//Deshabilita el botón
finalizar.setEnabled(false);
}
});
写下来:
我建议你这样做:
其中 button是 imagebutton,你的称为finish。
小心findViewById,我放的就是一个例子,我不知道你button的id是什么,这里也小心,我不知道你用的是button还是AppCompatButton,否则我记得是这么叫的
确保分配给它的按钮的引用
listener
是正确的,这一点很重要,以使单击正常工作以及在单击时禁用按钮的说明。
同事,我在以前的论坛中找到了这个解决方案。而且它比 setEnable(true/false) 更简单,因为有时很难捕获您想要启用的按钮的视图。
变量声明:
最后我们把这 5 行放在我们想要避免双击的地方:
例如我把它放在 onClick 方法中:
有了这个,能够禁用对按钮的点击就绰绰有余了。:D