Trong đơn đăng ký của tôi, tôi muốn nhận được sự kiện liên lạc của tất cả chế độ xem của trẻ em trong chế độ xem của cha mẹ là onTouchListener
nhưng tôi không thể nhận được thông báo này.Làm cách nào để sử dụng sự kiện liên lạc của chế độ xem của trẻ trong danh sách liên lạc của chế độ xem của phụ huynh?
Ví dụ:
Theo quan điểm hoạt động của tôi của tôi có một bố cục khung hình trong đó có một số nút và edittexts trong đó. Vì vậy, bất cứ khi nào tôi chạm vào nút hoặc chỉnh sửa văn bản, tôi muốn nhận sự kiện chạm này trong của framlayoutonTouchListeners
.
Đây là mã của tôi ..
Hoạt động:
private FrameLayout rootView;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
rootView = (FrameLayout) findViewById(R.id.rootview);
rootView.setOnTouchListener(new OnTouchListener()
{
@Override
public boolean onTouch(View v, MotionEvent event)
{
Log.e("Touch Event: ", " X: " + event.getX() + " Y: " + event.getY());
return false;
}
});
}
main.xml:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="10dip"
android:id="@+id/rootview">
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@android:color/white"
android:orientation="vertical"
android:layout_gravity="center"
android:padding="10dip">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:padding="4dp"
android:text="Login"
android:textColor="@android:color/black"
android:textSize="16dp"
android:textStyle="bold" />
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:text="Username"
android:textColor="@android:color/black"
android:textSize="14dp"
android:textStyle="bold" />
<EditText
android:id="@+id/edttextusername"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:imeOptions="flagNoExtractUi"
android:singleLine="true" />
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:text="Password"
android:textColor="@android:color/black"
android:textSize="14dp"
android:textStyle="bold" />
<EditText
android:id="@+id/edttextpassword"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:imeOptions="flagNoExtractUi"
android:password="true" />
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="center"
android:orientation="horizontal"
android:padding="10dp" >
<Button
android:id="@+id/btnlogin"
android:layout_width="0dip"
android:layout_height="40dip"
android:layout_marginRight="5dp"
android:layout_weight="1"
android:enabled="false"
android:text="Login"
android:padding="5dip"
android:textColor="@android:color/black"
android:textStyle="bold"
/>
<Button
android:id="@+id/btncall"
android:layout_width="0dip"
android:layout_height="40dip"
android:layout_marginLeft="5dp"
android:layout_weight="1"
android:padding="5dip"
android:text="Cancel"
android:textColor="@android:color/black"
android:textStyle="bold" />
</LinearLayout>
</LinearLayout>
</FrameLayout>
Vấn đề: Vì vậy whenver tôi chạm vào nút hoặc EditText Tôi không thể liên lạc được với bố cục của tôi trong onTouchLi stener (Nó không được gọi).
Lưu ý: Tôi không muốn thêm onTouchListener riêng cho tất cả các childViews.
Xin cảm ơn trước.
Bạn không nên gọi thủ công theo phương pháp TouchEvent ... – Crisic