Android 如何启动活动并单击Listener on按钮?
我有一个相对布局中带有按钮的xml布局。我想让布局在放纵时做出反应。我添加了一个线性布局作为相对布局的最后一个子元素,它覆盖了整个屏幕,然后我在其中添加了onTouch以获得乐趣。问题是它永远不会到达按钮上的onclick侦听器(在线性布局下),但是当我让touch侦听器返回false时,我的按钮被调用,但fling没有。如何获得这两个事件Android 如何启动活动并单击Listener on按钮?,android,android-layout,Android,Android Layout,我有一个相对布局中带有按钮的xml布局。我想让布局在放纵时做出反应。我添加了一个线性布局作为相对布局的最后一个子元素,它覆盖了整个屏幕,然后我在其中添加了onTouch以获得乐趣。问题是它永远不会到达按钮上的onclick侦听器(在线性布局下),但是当我让touch侦听器返回false时,我的按钮被调用,但fling没有。如何获得这两个事件 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android=
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:src="@drawable/img_calendar" />
<ImageView
android:id="@+id/child"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_marginLeft="60dp"
android:src="@drawable/img_child" />
<ImageView
android:id="@+id/ball"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@id/child"
android:layout_alignParentBottom="true"
android:layout_marginLeft="250dp"
android:src="@drawable/img_ball" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:src="@drawable/img_logo" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:src="@drawable/img_logo_second" />
<ImageView
android:id="@+id/info"
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:layout_margin="10dp"
android:src="@drawable/ic_information" />
<LinearLayout
android:id="@+id/linear"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal"
android:background="@android:color/transparent"
></LinearLayout>
猛扔什么狂欢?你的意思是
手势检测器.OnGestureListener#onFling
?如果是这样,没有人能看到您的代码…现在您可以看到@pskinkadd一些日志代码在onTouch
中,并看到它何时被称为SingleTap/doubletap不工作我已经尝试过了。
public class GestureListener extends Activity{
OnTouchListener toach_listener_cell = new OnTouchListener() {
int id = 0;
View v = null;
View previous_for_singleTap_View = null;
GestureDetector gestureDetector = new GestureDetector(getApplication(),
new GestureDetector.SimpleOnGestureListener() {
@Override
public boolean onDoubleTap(MotionEvent e) {
Toast.makeText(GestureListener.this, "DoubleTap",
Toast.LENGTH_LONG).show();
return super.onDoubleTap(e);
}
@Override
public boolean onSingleTapConfirmed(MotionEvent e) {
if(v.getId()==R.id.info)
test();
else if(v.getId()==R.id.linear)
Toast.makeText(GestureListener.this,
"singleLn", Toast.LENGTH_LONG).show();
return false;
}
@Override
public void onLongPress(MotionEvent e) {
/* Toast.makeText(GestureListener.this,
"onLongPress", Toast.LENGTH_LONG).show();*/
}
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
return false;
};
});
@Override
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
id = v.getId();
this.v = v;
gestureDetector.onTouchEvent(event);
return false;
}
};
LinearLayout check;
public void test(){
Toast.makeText(GestureListener.this,
"info", Toast.LENGTH_LONG).show();
}
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.main_screen);
check=(LinearLayout) findViewById(R.id.linear);
ImageView info=(ImageView) findViewById(R.id.info);
check.setOnTouchListener(toach_listener_cell);
info.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
test();
}
});
}
}