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 に答える