我有2个显示按钮。 第一个按钮为未按下-在用户单击之前显示的按钮,而第二个按钮在用户单击之后显示的按钮。
用户单击第一个按钮后,他消失了(不可见),然后出现了第二个按钮(Visibility.VISIBLE)。
问题在于用户再次按下按钮后第一个按钮没有出现。第一个按钮不再出现。
那是我尝试过的。
private void initFunctionality() {
startPlayPressed.setVisibility(View.INVISIBLE);
startPlay.setVisibility(View.VISIBLE);
startPlay.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
startPlay.setVisibility(View.INVISIBLE);
startPlayPressed.setVisibility(View.VISIBLE);
imageView.startAnimation(animation);
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
ActivityUtilities.getInstance().invokeNewActivity(SplashActivity.this, MainActivity.class, true);
}
}, 500);
}
});
}
我希望在用户再次按下按钮后再次显示第一个按钮。
答案 0 :(得分:3)
如果希望按下按钮时发生一件事情,而释放按钮时发生另一件事,则不应使用ClickListener
。您应该使用onTouchListener。
示例:
startPlay.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction()==MotionEvent.ACTION_DOWN){
// User pressed the button. What should happen here?
}else if (event.getAction()==MotionEvent.ACTION_UP){
// User released the button. What should happen now?
}
return true;
}
});
注意:您的英语有点混乱。我以为这就是您想要的(按/释放按钮),但也许我不完全了解您...
答案 1 :(得分:3)
而不是使用INVISIBLE,请尝试按以下方式使用GONE关键字
eglMakeCurrent
答案 2 :(得分:1)
这里是功能view.getVisibility()
,您可以尝试一下。在您的情况下,视图将为按钮
答案 3 :(得分:1)
您的问题尚不清楚。假设您要
1)隐藏Button1并在按下Button1时显示Button2。
2)隐藏Button2并在按下Button2时显示Button1。
下面的代码将帮助您实现这一目标。
private void initFunctionality() {
startPlayPressed.setVisibility(View.INVISIBLE);
startPlay.setVisibility(View.VISIBLE);
startPlay.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
startPlay.setVisibility(View.INVISIBLE);
startPlayPressed.setVisibility(View.VISIBLE);
imageView.startAnimation(animation);
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
ActivityUtilities.getInstance().invokeNewActivity(SplashActivity.this, MainActivity.class, true);
}
}, 500);
}
});
startPlayPressed.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
startPlay.setVisibility(View.VISIBLE);
startPlayPressed.setVisibility(View.INVISIBLE);
imageView.startAnimation(animation);
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
//Do whatever you want
}
}, 500);
}
});
}