2010-07-11 1 views
0

Таким образом, каждый раз, когда я запускаю этот код мой Android приложение останавливает unexpectdly, и я не понимаю, почему ...Android-приложение всегда останавливается неожиданно, пытаясь обработать событие?

import android.app.Activity; 
import android.os.Bundle; 
import android.view.MotionEvent; 
import android.view.View; 
import android.view.View.OnTouchListener; 
import android.widget.Button; 
import android.widget.TextView; 


public class TheStupidTest extends Activity { 


public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    final TextView text1 = (TextView) findViewById(R.id.TextView01); 
    text1.setText("well this works at least"); 

    Button yButton = (Button) findViewById(R.id.button_yellow); 
    yButton.setOnTouchListener(new OnTouchListener() { 

     @Override 
     public boolean onTouch(View v, MotionEvent event) { 
      if (event.equals(MotionEvent.ACTION_UP)) { 
       text1.setText("You pressed the yellow button"); 
       return true; 
      } 

      return false; 
     } 


    }); 



    } 



} 
+0

Просмотреть сообщение от Pentium10 о том, как отладить приложение для Android http://stackoverflow.com/questions/3222608/android-error-the-application-has-stopped-unexpectedly-please-try-again/3223115# 3223115 – ccheneson

+0

вы можете взглянуть на DDMS и logcat, чтобы проверить проблемы. Http://goo.gl/i9by –

+1

Почему 'OnTouchListener' вместо' OnClickListener' для кнопки? – adamp

ответ

1

1 Проблема заключается в том, что MotionEvent.ACTION_UP имеет тип int так для вашего теста, чтобы быть правильно, вы должны иметь

if (event.getAction() == MotionEvent.ACTION_UP) { 
0

, прежде всего, OnTouchListener не очень подходящий слушатель для Button кроме вас делают очень специальные вещи. Вы должны ввести OnClickListener для вашего Button.

А также рассмотрите, что опубликовал ccheneson. Вы не сравниваете его правильно.