在 android 应用程序中同时按下 2 个按钮,没有简单的解决方案吗?
Pressing 2 buttons simultaneously in android app, no simple solution?
public class TwoPlayers extends AppCompatActivity implements
View.OnClickListener {
private Button start, start2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.two_players);
start = (Button) findViewById(R.id.buttonStart);
start2 = (Button) findViewById(R.id.buttonStrat2);
start.setOnClickListener(this);
start2.setOnClickListener(this);
}
@Override
public void onClick(View v) {
if((v == start)&&(v == start2)){
start.setVisibility(View.GONE);
start2.setVisibility(View.GONE);
...
最初我认为这会很容易做到,因为所有手机都支持多点触控多年,但现在我发现它看起来比我想象的要难,我需要同时按下 2 个按钮才能开始游戏。我上面使用 onClick 侦听器的方法不起作用。最简单的方法是什么?因为目前我找到的方法是使用OnTouchListener和ACTION_DOWN,然后记录一些坐标,检查坐标是否在按钮区域内,比较复杂。不仅如此,我所有的其他按钮都在使用 onClick,如果我只使用 onTouch 开始游戏,我是否也必须将它用于所有其他按钮,或者我可以让它们使用 onClick?
条件if((v == start)&&(v == start2))
永远不可能为真。 v
不能同时有两个不同的值。
onClick 方法将被调用两次,一次是在您按下 start
按钮时,另一次是在您按下 start2
按钮时。
您可以使用isPressed方法来检查何时同时按下视图(Button
是一个View
,所以它继承了它的所有方法)。
换句话说:
@Override
public void onClick(View v) {
if(start.isPressed() && start2.isPressed()) {
start.setVisibility(View.GONE);
start2.setVisibility(View.GONE);
...
当第一个按钮被按下时,onClick被调用但是条件为假。当按下第二个按钮(并且仍然按下第一个按钮)时,条件将为真。
public class TwoPlayers extends AppCompatActivity implements
View.OnClickListener {
private Button start, start2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.two_players);
start = (Button) findViewById(R.id.buttonStart);
start2 = (Button) findViewById(R.id.buttonStrat2);
start.setOnClickListener(this);
start2.setOnClickListener(this);
}
@Override
public void onClick(View v) {
if((v == start)&&(v == start2)){
start.setVisibility(View.GONE);
start2.setVisibility(View.GONE);
...
最初我认为这会很容易做到,因为所有手机都支持多点触控多年,但现在我发现它看起来比我想象的要难,我需要同时按下 2 个按钮才能开始游戏。我上面使用 onClick 侦听器的方法不起作用。最简单的方法是什么?因为目前我找到的方法是使用OnTouchListener和ACTION_DOWN,然后记录一些坐标,检查坐标是否在按钮区域内,比较复杂。不仅如此,我所有的其他按钮都在使用 onClick,如果我只使用 onTouch 开始游戏,我是否也必须将它用于所有其他按钮,或者我可以让它们使用 onClick?
条件if((v == start)&&(v == start2))
永远不可能为真。 v
不能同时有两个不同的值。
onClick 方法将被调用两次,一次是在您按下 start
按钮时,另一次是在您按下 start2
按钮时。
您可以使用isPressed方法来检查何时同时按下视图(Button
是一个View
,所以它继承了它的所有方法)。
换句话说:
@Override
public void onClick(View v) {
if(start.isPressed() && start2.isPressed()) {
start.setVisibility(View.GONE);
start2.setVisibility(View.GONE);
...
当第一个按钮被按下时,onClick被调用但是条件为假。当按下第二个按钮(并且仍然按下第一个按钮)时,条件将为真。