2012-03-03 10 views
5

W moim kodzie, słuchacz ontouch przycisku jest uruchamiany dwa razy. proszę znaleźć poniżej kod. Używam Google API 2.2.Android - na odbiorniku dotykowym wystrzelonym dwukrotnie

kod w pliku java ....

submit_button = (Button)findViewById(R.id.submit); 

submit_button .setOnTouchListener(new View.OnTouchListener() 
     {  
      public boolean onTouch(View arg0, MotionEvent arg1) { 
       int action=0; 
       if(action == MotionEvent.ACTION_DOWN) 
       {     

        startActivity(new Intent(First_Activity.this, Second_Activity.class)); 
        finish(); 
       } 
       return true;  
       }  
      }); 

Proszę mi pomóc w rozwiązaniu tego problemu.

Odpowiedz

7

zamiast korzystania onTouchListener, należy użyć onClickListener przycisków.

submit_button.setOnClickListener(new OnClickListener() {  
    public void onClick(View v) { 
     startActivity(new Intent(First_Activity.this, Second_Activity.class)); 
     finish(); 
    } 
}); 
+0

Dzięki temu zadziałało. – Prem

0

Czy dołączyć słuchacza dwa do przeglądania elementów? Przed reakcją na sprawdzenie zdarzenia, z którego widoku pochodzi, należy użyć parametru View arg0.

14

Wystrzeliwuje dwa razy, ponieważ występuje zdarzenie w dół i wydarzenie w górę.

Kod w gałęzi if zawsze jest wykonywany, ponieważ akcja jest ustawiona na 0 (co, nawiasem mówiąc, jest wartością MotionEvent.ACTION_DOWN).

int action=0; 
if(action == MotionEvent.ACTION_DOWN) 

Może chciałeś napisać poniższy kod?

if(arg1.getAction() == MotionEvent.ACTION_DOWN) 

Ale naprawdę powinieneś użyć OnClickListener jak sugeruje Waqas.

+0

bardzo pomocna, wielkie dzięki. – katzenhut

0
int action = event.getActionMasked(); 

Użyj tego.

+3

co to robi? jak to ma działać? Odpowiedzi tego rodzaju są mniej niż pomocne. Proszę podać wyjaśnienie zamiast tylko linii kodu. Dzięki – katzenhut

Powiązane problemy