我正在制作一个音板,我希望实现长按以分享声音。
我正在为每个按钮使用switch Case
public void MainMMP(View view){
switch (view.getId()) {
case R.id.button1:
MainMMP.release();
MainMMP = MediaPlayer.create(this, R.raw.xxx1);
MainMMP.start();
break;
case R.id.button2:
MainMMP.release();
MainMMP = MediaPlayer.create(this, R.raw.xxx2);
MainMMP.start();
break;
case R.id.button3:
MainMMP.release();
MainMMP = MediaPlayer.create(this, R.raw.xxx3);
MainMMP.start();
break;
现在我想实现长按。我在这里尝试了很多不同的代码,但它对我不起作用。
我不知道在哪里放onLongClick
语句以及如何。
有人可以告诉我一个工作方法,如果长时间点击,它应该只给我一个Toast,我知道这个方法有效吗?
答案 0 :(得分:0)
您可以在onCreate方法中添加OnLongClickListener,例如。
尝试使用以下代码:
Button button = (Button)findViewById(R.id.button);
button.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
//Your code
return false; // True if you want to execute simple click code too
}
});
答案 1 :(得分:0)
您可以使用此
private View.OnLongClickListener listener = new View.OnLongClickListener() {
@Override
public boolean onLongClick(View view) {
switch (view.getId())
case R.id.button1:
// Do something...
break;
case R.id.button2:
// Do something else...
break;
// If you still want to get normal click callbacks return true,
// if you do not then return false.
return true;
}
}
代码中的某处
Button button1 = (Button)findViewById(R.id.button1);
Button button2 = (Button)findViewById(R.id.button2);
button1.setOnLongClickListener(listener);
button2.setOnLongClickListener(listener);
或者更好
获得onClick
/ onLongClick
/ whatever
回调的一种常见推荐方法是让Activity
实现回调接口。
class YourActivity extend Activity implements View.OnLongClickListener {
@Override
public boolean onCreate(/* ... */) {
// ...
button1.setOnLongClickListener(this);
button2.setOnLongClickListener(this);
}
@Override
public boolean onLongClick(View view) {
// Same code as the one above
}
}