如何防止用户同时按下两个按钮?

时间:2014-03-05 13:14:51

标签: android android-layout android-button

在我的应用中的每个活动中,用户都可以同时按下两个按钮。 我怎么能阻止他们这样做?

8 个答案:

答案 0 :(得分:4)

  

你可以在屏幕上禁用多点触控......这只能是允许的   单击

     

放置此行按钮viewGroup layout

android:splitMotionEvents =“false”

<LinearLayout
        android:id="@+id/list_layout"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="horizontal"
        android:splitMotionEvents="false" >

        <Button
            android:id="@+id/listView1"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:scrollbars="none" >
        </Button>

        <Button
            android:id="@+id/listView2"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:scrollbars="none" >
        </Button>
    </LinearLayout>

答案 1 :(得分:1)

您可以尝试这样:

findViewById(R.id.buttonX).setOnClickListener(new View.OnClickListener() {                        
            @Override
            public void onClick(View view) {
                    ViewGroup group = (ViewGroup)findViewById(R.id.container);
                    for (View touchable : group.getTouchables()) {
                            if (touchable != view && touchable.isPressed()) {
                                    Log.d("...", "skip");
                            }
                    }
            }
    });

答案 2 :(得分:0)

禁用所有按钮的点击侦听器上的所有其他按钮

答案 3 :(得分:0)

在第一个按钮上单击,您可以通过运行一个线程

执行特定的秒数
  second_btn.setEnabled(false); or second_btn.setClickable(false);

答案 4 :(得分:0)

如果按钮靠近另一个按钮,你可以制作一个无需任何工作就能完成工作的无线电组:D。如果不是,你可以使用synk布尔变量并播放所有情况。

答案 5 :(得分:0)

一个广播组应该发挥魔力。因为用户可以选择任何一个选项(我的意思是一次按钮)。

答案 6 :(得分:0)

你可以为每一个按钮尝试这样的事情:

boolean buttonClicked = false;

button.setOnClickListener(new OnClickListener() {
  @Override
  public void onClick(View v) {
       if(!buttonClicked) {
         buttonClicked = true;
         ...
         ...
         ...
         buttonClicked = false;
       }             
  }
});

答案 7 :(得分:0)

要在您的主题中使用此方法同时禁用同时按下两个按钮 - 它工作正常!

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    ...

    <item name="android:splitMotionEvents">false</item>
    <item name="android:windowEnableSplitTouch">false</item>
</style>