Linerlayoutをクリックした際に、子のviewが持っているURL情報を取得し、外部ブラウザを開くという処理を実装する際の対応
初めは何も考えずに
LinearLayout linerlayoutView = (LinearLayout) findViewById(R.id.area); linerlayoutView.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Toast.makeText(HogeActivity.this, "linerlayout click", Toast.LENGTH_SHORT).show(); } });
とかやってみたんだけど、クリックしても認識しなかった。
で、調べてみたら、setClickableすれば行けそう。
LinearLayout linerlayoutView = (LinearLayout) findViewById(R.id.area); linerlayoutView.setClickable(true); linerlayoutView.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Toast.makeText(HogeActivity.this, "linerlayout click", Toast.LENGTH_SHORT).show(); } });
これでonClickのイベントが動くようになった。
(clickableはlayoutでも指定することができる。その場合は、「android:clickable=”true”」な感じで指定)