Я хочу сделать кнопку, которая что-то делает, когда удерживается в течение 3 секунд, и я получил это. Он работает, но мне интересно, правильно ли он делает что-то, что я имею в виду под этим, что я хочу сделать все кнопки одинаковыми, целые меню на основе удержания для x секунд, а затем приступить к чему-то, и мне интересно, не будет проблем и не заставит мое приложение лагги.Android удерживайте кнопку в течение нескольких секунд, а затем сделайте что-то
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
onbutton = (Button)findViewById(R.id.onbutton);
onbutton.setOnTouchListener(new View.OnTouchListener() {
private Handler handler;
@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
switch(motionEvent.getAction()){
case MotionEvent.ACTION_DOWN:
onbutton.setBackgroundResource(R.drawable.onbuttonshape);
handler = new Handler();
handler.postDelayed(run,3000);
break;
case MotionEvent.ACTION_UP:
onbutton.setBackgroundResource(R.drawable.buttonshape);
handler.removeCallbacks(run);
break;
}
return true;
}
Runnable run = new Runnable() {
@Override
public void run() {
Toast.makeText(MainActivity.this, "delayed msg", Toast.LENGTH_SHORT).show();
}
};
});
}
Почему бы просто не использовать 'setOnLongClickListener()'? Должно быть, это ровно 3 секунды? – JDC
Я думаю, что это относится к codereview.stackexchange.com. – shmosel