2
Window w = getWindow();
w.addFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE);

上面的代码是为了让整个窗口不可触摸。

但是,这个窗口内的按钮也不是可触摸的,而我希望它是可点击的。

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

Window w = getWindow();
w.addFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE);

b = (Button)findViewById(R.id.button1);
b.setClickable(true);
b.setOnClickListener(this);

}

我怎样才能使那个按钮可以触摸?

4

2 回答 2

2

除非您将它们注册到,否则布局中的其他视图不应注册 onclicks。您期望将整个窗口设置为不可触摸的行为是什么?

编辑:只要您希望它们都相同,此代码可用于在几乎任何视图上设置任何设置。要将多个视图设置为不可点击,只需将它们全部放入 view[] 数组并像这样遍历它们

TextView a,b,c;
EditText d,e,f;
RelativeLayout g,h,i;

@Override
protected void onCreate(){


//intstatiate and inflate all your views....you should know how to do that

View[] viewHolder = {a,b,c,d,e,f,g,h,i};
for(int i = 0; viewHolder.length>i; i++){

    viewHolder[i].setClickable(false);

}

这将完全符合您的要求,但除非其他视图正在关注您不应该这样做。但它会起作用。

于 2013-05-31T01:17:56.680 回答
0

通过使用此代码:

  Window w = getWindow();
  w.addFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE);

整个窗口将被设置为不可触摸。或者,您可以对您在 XML 中添加的每个视图使用 onClickListener。甚至布局也可以有自己的点击监听器

于 2013-05-31T01:21:14.203 回答