私には理解できない奇妙な点があります。以下のレイアウトでは、割り当てたボタン クリック イベントが機能しません。ボタンをタップしても何も起こりません。
(レイアウトはこれより少し複雑ですが、無関係なものを削除しました):
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/layoutOverview"
android:paddingLeft="7dp"
android:paddingRight="7dp"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/lblOverviewText"
android:textStyle="bold"
android:textSize="20sp"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<LinearLayout
android:id="@+id/layoutSingleBlock"
android:layout_below="@+id/lblOverviewText"
android:layout_above="@+id/linearLayoutSetUnsetButtons"
android:visibility="gone"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:gravity="center">
<!-- irrelevant stuff removed -->
<Button
android:id="@+id/btnMyButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="MY BUTTON" />
</LinearLayout>
</RelativeLayout>
ただし、ボタンを のコンテキストの外に移動するとLinearLayout
、たとえば以下のように機能します。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/layoutOverview"
android:paddingLeft="7dp"
android:paddingRight="7dp"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/lblOverviewText"
android:textStyle="bold"
android:textSize="20sp"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<Button
android:id="@+id/btnMyButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="MY BUTTON" />
<LinearLayout
android:id="@+id/layoutSingleBlock"
android:layout_below="@+id/lblOverviewText"
android:layout_above="@+id/linearLayoutSetUnsetButtons"
android:visibility="gone"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:gravity="center">
<!-- irrelevant stuff removed -->
<!-- button moved outside the LinearLayout -->
</LinearLayout>
</RelativeLayout>
LinearLayout
ボタンクリックイベントを妨げているのはこれについて何ですか?
編集
要求に応じて、これは私がクリックリスナーを割り当てる方法ですOnCreate
: (C#/Mono for Android)
FindViewById<Button>(Resource.Id.btnMyButton).Click += (s, e) => AlertAlarmEvents();
質問で概説されているように、この正確なコードは LinearLayout のコンテキスト外では機能しますが、内部では機能しません。