Как вызвать слушателя в другой функции в Android - PullRequest
0 голосов
/ 30 марта 2012

У меня есть этот код

public boolean dispatchTouchEvent(MotionEvent ev) {        
     if (ev.getAction() == MotionEvent.ACTION_UP) {    
         Vibrator v = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);    

         Random r=new Random();    
         int i1=(r.nextInt(500) +4000);    

         v.vibrate(i1);    
   }    
   return super.dispatchTouchEvent(ev);    
}    

, и я хочу вызвать этот слушатель в другом классе и другой функции.Как мне это назвать?

Ответы [ 2 ]

2 голосов
/ 30 марта 2012

Вам нужно создать класс, который реализует ваш слушатель

public class MyListener implements OnClickListener {

    private Context context;

    public MyListener(Context context) {
        super();
        this.context = context;
    }

    @Override
    public void onClick(View v) {
        Toast.makeText(context, "just a test", 2000).show();
    }
}

А в твоей деятельности:

public class ListenerTestActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        Button button = (Button) findViewById(R.id.button1);

        button.setOnClickListener(new MyListener(this));
    }
}
0 голосов
/ 30 марта 2012

Например, создайте новый класс с именем MyUtils и создайте метод static public, который выполняет вибрирующие вещи.Затем вызовите этот статический метод из ваших слушателей.

Как:

public class MyUtils {
    static public void vibrate(Context context) {
        Vibrator v = (Vibrator) context.getSystemService(Context.VIBRATOR_SERVICE);    

        Random r=new Random();    
        int i1=(r.nextInt(500) +4000);    

        v.vibrate(i1);    
    }
}

и:

public boolean dispatchTouchEvent(MotionEvent ev) {        
    if (ev.getAction() == MotionEvent.ACTION_UP) {    
        MyUtils.vibrate(this);
    }    
    return super.dispatchTouchEvent(ev);    
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...