Как дезактивировать двойную порцию click кнопки?

У меня есть следующая функция, чтобы сохранять данные в базе данных, где "GuardarDatos" - метод onClick моей кнопки, но я хочу, чтобы вывел кнопку из строя после clickar 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
            }
        });
    }

}

ACTUALIZ:

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); 
            }

        });
2
задан 19.09.2016, 18:18
5 ответов

Напиши это:

finalizar.setEnabled(false);

я рекомендую Тебе это делать таким образом:

ImageButton boton= (ImageButton) findViewById(R.id.button1);

        boton.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View view) {
                //ejecuta el método
                guardarDatos();
                //Deshabilita el botón
                boton.setEnabled(false); 
            }

        });
        return true;
    }
public void guardarDatos(){
//cosas que quieres que haga el botón al clickearlo
}

DГіnde кнопка - imagebutton, твоего называются заканчивать .

1
ответ дан 24.11.2019, 13:21
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 = (Button)findViewById(R.id.finalizar); finalizar.setClickable(false);
} }

Глаз с findViewById, который я поместил, - пример я не знаю, который будет id твоего buttón, и также здесь много глаз я не знаю, используешь ли ты buttón или AppCompatButtón, если не больше я помню так, он называется

1
ответ дан 24.11.2019, 13:21
  • 1
    Это imageButton и уже я считаю созданным findViewById твой конца не служит jaja, но я протестирую setClickable – Rf Mvs 19.09.2016, 18:42
  • 2
    jajaj это должно функционировать, и если ты получаешь ошибку, ты посылаешь изображение. – marlonpya 19.09.2016, 18:43
  • 3
    setClickable также не функционирует... T.T Всерьез я не буду мочь делать что-то так f и # 225; cil, который уже я сделал? Вот что ты комментируешь, то, что я хочу сделать, но это x4mp73r я это сделал и ничто... – Rf Mvs 19.09.2016, 18:44
  • 4
    Он помещает это мне: [2016-09-19 17:43:59 - ddms] Хан и # 39; t bind to помещение 8700 for debugger, Но в эту ошибку я не замечаю, так как я идет весь app, только это, попробовав делать это – Rf Mvs 19.09.2016, 18:44
  • 5
    Добавьте меня в skype чтобы это говорить и не делать чат: rafaespada3 – Rf Mvs 19.09.2016, 18:48

CompaГ±eros, это решение я находился она в предыдущем форуме. И он проще, чем та setEnable (true/false), так как от случая к случаю осложнено захватывать view button, которому хотят дать возможность.

Заявление Varibles:

...
private static final long TIEMPO_MINIMO= 1000; // Minimo de espera para click
private long ultimoClick= 0; // Fecha del Ultimo click capturado
...

И в конце концов мы помещаем эти 5 линий, где мы хотим предотвратить двойную порцию click:

// Evitar doble click boton
if (SystemClock.elapsedRealtime() - ultimoClick < TIEMPO_MINIMO){
    return;
}
ultimoClick= SystemClock.elapsedRealtime();

Например я это помещаю внутри метода onClick:

...
    @Override
    public void onClick(View v) {
        // Evitar doble click boton
        if (SystemClock.elapsedRealtime() - ultimoClick < TIEMPO_MINIMO){
            return;
        }
        ultimoClick= SystemClock.elapsedRealtime();
...
0
ответ дан 24.11.2019, 13:21
  • 1
    Слишком много вещь, setEnabled является м и # 225; s f и # 225; cil, так как одинокий 1 instrucci и # 243; n и оно я функционировало, спасибо так или иначе: D – Rf Mvs 20.09.2016, 10:20

Важно уверять, что ссылка botГіn в ту, которая ты распределял ему listener, - правильная,

finalizar = (ImageButton) findViewById(R.id.Guardar);

для того, чтобы функционировал правильно клик и она instrucciГіn, чтобы выводить из строя botГіn, реализовав клик.

finalizar = (ImageButton) findViewById(R.id.Guardar);
   finalizar.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View view) {
                //ejecuta el método
                GuardarDatos(); 
                //Deshabilita el botón
                finalizar.setEnabled(false); 
            }
             return true;
        });
0
ответ дан 24.11.2019, 13:21
  • 1
    Спасибо Елена в любом случае они я шли без return. То, что он перемещал, состояло в том, что вместо того, чтобы заявлять в xml ImageButton, заявлял ImageView...... T.T – Rf Mvs 19.09.2016, 21:10
button.setEnable(false); 

с этим больше, чем достаточный, чтобы мочь дезактивировать клик в button. :D

0
ответ дан 24.11.2019, 13:21