我正在开发一个大UI来显示用户表单的详细信息。如果用户点击包含电话号码LinearLayout
的{{1}},我希望如此。我想拨打电话TextView
。我已将intent
属性添加到所有onClick()
个。但只有第一个有效,而其他人没有任何解释,我们将不胜感激。
LinearLayout
ID为 ll1 的 <RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="10dp" >
<ImageButton
android:id="@+id/imageButtonMSG1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#f8f3c2"
android:layout_alignParentRight="true"
android:layout_marginRight="20dp"
android:src="@drawable/msg" />
<LinearLayout
android:layout_width="wrap_content"
android:id="@+id/ll1"
android:layout_height="match_parent"
android:clickable="true"
android:layout_alignParentLeft="true"
android:layout_toLeftOf="@+id/imageButtonMSGMobile"
android:orientation="vertical" >
<TextView
android:id="@+id/textViewMobile1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:text="Small Text"
android:textColor="#790202"
android:textAppearance="?android:attr/textAppearanceMedium" />
<TextView
android:id="@+id/textViewCperson1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingLeft="20dp"
android:text="Cperson1"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textColor="#E14343" />
</LinearLayout>
<TextView
android:id="@+id/textView201"
android:layout_width="0.1dp"
android:layout_height="40dp"
android:background="#8E6364"
android:layout_alignParentRight="true"
android:layout_marginRight="60dp"
android:textAppearance="?android:attr/textAppearanceSmall" />
</RelativeLayout>
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:paddingTop="2dp" >
<TextView
android:id="@+id/textView51"
android:layout_width="fill_parent"
android:layout_height="0.2dp"
android:background="#8E6364"
android:layout_marginTop="5dp"
android:layout_marginLeft="15dp"
android:layout_marginRight="15dp"
android:textAppearance="?android:attr/textAppearanceSmall" />
</RelativeLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="10dp" >
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:id="@+id/ll2"
android:layout_alignParentLeft="true"
android:clickable="true"
android:layout_toLeftOf="@+id/imageButtonMSGHome"
android:orientation="vertical" >
<TextView
android:id="@+id/textViewMobile2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:text="Small Text"
android:duplicateParentState="true"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textColor="#790202" />
<TextView
android:id="@+id/textViewCperson2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingLeft="20dp"
android:text="Cperson2"
android:duplicateParentState="true"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textColor="#E14343" />
</LinearLayout>
<TextView
android:id="@+id/textView202"
android:layout_width="0.2dp"
android:layout_height="40dp"
android:background="#8E6364"
android:layout_alignParentRight="true"
android:layout_marginRight="60dp"
android:textAppearance="?android:attr/textAppearanceSmall" />
<ImageButton
android:id="@+id/imageButtonMSG2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#f8f3c2"
android:layout_alignParentRight="true"
android:layout_marginRight="20dp"
android:src="@drawable/msg" />
</RelativeLayout>
适用于LinearLayout
事件,而 ll2 和其他人无效。我不知道为什么会这样。
答案 0 :(得分:1)
在XML中简单地声明onClick
属性可能更容易 - 这样可以避免为每个视图调用setOnClickListener
。这可以这样做:
<LinearLayout
...
android:onClick="doSomething" >
然后,在您的Java代码中,您将需要一个名为doSomething
的公共方法,该方法接受类型为View
的参数:
public void doSomething(View view) {
// React to click here
}
注意,如果您不想要/不需要,则无需对view
参数执行任何操作。
答案 1 :(得分:0)
确保为每个布局执行以下操作:
LinearLayout ll1 = (LinearLayout )findViewById(R.id.ll1);
ll1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//Do stuff here
}
});