Button
当我按住它 3 秒钟时,我需要更改布局,但是当我快速按下一次时,它应该只是播放声音。
在下面的代码中,无论如何都会发出声音(因为在这种情况下没关系)。
我的问题是它只会在您第一次使用时更改页面,Button
无论是按住(更改布局)还是短按(仅播放声音)。因此,如果我按住按钮并更改布局,但然后我返回它不会再次工作。此外,如果使用短按来播放声音,我无法按住按钮来更改布局。
final Button b1pad1 = (Button) findViewById(R.id.b1pad1);
b1pad1.setOnTouchListener(new View.OnTouchListener() {
public boolean onTouch(View v, final MotionEvent event) {
// TODO Auto-generated method stub
switch(event.getAction()) {
case MotionEvent.ACTION_DOWN:
MediaPlayer mp = MediaPlayer.create(PhotosActivity.this, R.raw.sub);
mp.start();
holdTimer = new Thread() {
public void run() {
try {
int timer = 0;
while (timer<3000) {
sleep(100);
if (event.getAction() == MotionEvent.ACTION_UP) {
//checks whether you lifted your finger before
//the 3 seconds.
breaked = "no";
//"no" means "don't change layout"
changetobrowser(b1pad1, breaked);
break;
}
timer = timer + 100;
}
if (breaked.equals("")){
breaked = "go"; //go means "change the layout"
changetobrowser(b1pad1,breaked);
}
} catch (InterruptedException e) {
e.printStackTrace();
}
}
};
holdTimer.start();
break;
case MotionEvent.ACTION_UP:
// End
break;
}
return false;
}
});
public void changetobrowser(Button but, String breaked) {
if (breaked.equals("go")){
Intent browseIntent = new Intent(PhotosActivity.this, BrowseScreen.class);
startActivity(browseIntent);
} else {
}
}
问题可能是什么?这甚至是最简单的方法吗?