LongClick akce také spouští události Click

hlasů
14

Používám onLongClick a klepnutí události tlačítka získat uživatelské vstupy. Kdykoli; Uživatel dlouhé kliknutí a spustí onLongClick událost, událost onClick je také spuštěna. Nemohl jsem najít můj problém. Kód dvou metod jsou uvedeny v níže:

@Override
    public void onClick(View v) {
        switch(((Button) v).getId())
        {
        case R.id.enter:
            EntertheNumber();
            break;
        case R.id.clear:
            CleartheNumber();
            break;
        case R.id.number_zero:
        case R.id.number_one:
        case R.id.number_two:
        case R.id.number_three:
        case R.id.number_four:
        case R.id.number_five:
        case R.id.number_six:
        case R.id.number_seven:
        case R.id.number_eight:
        case R.id.number_nine:
            AddtotheNumber(mEditor, (Button) v);
            break;
        }
@Override
    public boolean onLongClick(View view) {
        if(SMBGuesstheNumber.bDisplayFlagList)
        {
            theActiveButton = (Button) view;
            showDialog(R.id.display_flaglist);
        }
        return false;
    }

Ve skutečnosti, můj projekt s otevřeným zdrojovým kódem. Ano, můžete najít všechny kód v http://code.google.com/p/guessthenumber/

Děkuji.

Položena 12/04/2009 v 19:31
zdroj uživatelem
V jiných jazycích...                            


3 odpovědí

hlasů
33

Nejsem si jistý, v jakém pořadí tyto události nastat, ale psovod onLongClick vrátí bool uvést, zda byla událost zacházet. Měli byste se vrátit pravda, pokud ji ovládal, aby se jiní prokliky nebudou volal. Já nevím, jestli to bude bránit bránit onClick () ze střelby ačkoli.

Můžete také zapnout tyto události vypnout a zapnout pomocí setClickable (boolean) a setLongClickable (boolean)

Můžete je najít informace a další informace o událostech uživatelského rozhraní zde .

Odpovězeno 12/04/2009 v 20:12
zdroj uživatelem

hlasů
0

Řešení On Longclick SingleClick nebude fungovat:

rippleView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
            //Your code
            }
        });
rippleView.setOnLongClickListener(new View.OnLongClickListener() {
            @Override
            public boolean onLongClick(View v) {
                return true;
            }
        });
Odpovězeno 03/04/2019 v 11:16
zdroj uživatelem

hlasů
0

Zde je stručný přehled o události doteku: http://rxwen.blogspot.com/2010/10/android-touch-event-summary.html

Odpovězeno 20/10/2010 v 07:13
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more