[英]problem with OnClickListener priority in android
I have an app with two buttons.我有一个带有两个按钮的应用程序。 I want first one (main button) to be unclickable unless you click second one (controller).
我希望第一个(主按钮)不可点击,除非你点击第二个(控制器)。 But it is clickable:
但它是可点击的:
public class MainActivity extends AppCompatActivity {
Button button;
Button controller;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
LinearLayout screen = findViewById(R.id.mainView);
button = new Button(this);
button.setClickable(false);
screen.addView(button);
controller = new Button(this);
screen.addView(controller);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
view.setBackgroundColor(Color.RED);
}
});
controller.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
for (int i=0; i<2; i++) {
button.setClickable(true);
}
}
});
}
}
When I implement OnClickListener only for controller, it works and first button is unclickable.当我只为控制器实现 OnClickListener 时,它可以工作并且第一个按钮不可点击。 But when I implement OnClickListener for main button too, it gets priority and works anyway.
但是当我也为主按钮实现 OnClickListener 时,它会获得优先级并且无论如何都能工作。 What can I do?
我能做什么?
Behind the scenes, calling setOnClickListener()
makes the target clickable.在幕后,调用
setOnClickListener()
使目标可点击。 You can set clickable to false after setting the click listener.你可以在设置点击监听器后将clickable设置为false。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.