在我的应用中的每个活动中,用户都可以同时按下两个按钮。 我怎么能阻止他们这样做?
答案 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>