在 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被调用但是条件为假。当按下第二个按钮(并且仍然按下第一个按钮)时,条件将为真。