小编mcr*_*ley的帖子

Android SimpleOnGestureListener.onFling获取null MotionEvent

我试图在一个简单的Android应用程序上检测一个fling事件,但第一个MotionEvent参数始终为null.为什么使用null参数调用onFling方法?在Android文档说,当一个一扔事件上下来MotionEvent初始和匹配起来MotionEvent发生时被调用.

class MyGestureDetector extends SimpleOnGestureListener {
    @Override
    public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
        // e1 always == null, return early a null reference exception
        if (e1 == null) {
            return false;
        }
        if (e1.getY() - e2.getY() > 120) {
            handleFlingEvent();
            return true;
        }
        return false;
    }
}
Run Code Online (Sandbox Code Playgroud)

主Activity有这个onTouchEvent方法:

GestureDetector flingDetector = new GestureDetector(new MyGestureDetector());

@Override
public boolean onTouchEvent(MotionEvent event) {
    if (flingDetector.onTouchEvent(event)) {
        return true;
    }
    return super.onTouchEvent(event);
}
Run Code Online (Sandbox Code Playgroud)

android touch

17
推荐指数
4
解决办法
1万
查看次数

为什么这个LINQ查询编译?

在阅读Jon Skeet的" Odd query expressions "后,我尝试了下面的代码.我期望最后的LINQ查询转换为int query = proxy.Where(x => x).Select(x => x);不编译因为Where返回一个int.代码编译并将"Where(x => x)"打印到屏幕并将查询设置为2.从不调用Select,但需要在那里编译代码.怎么了?

using System;
using System.Linq.Expressions;

public class LinqProxy
{
    public Func<Expression<Func<string,string>>,int> Select { get; set; }
    public Func<Expression<Func<string,string>>,int> Where { get; set; }
}

class Test
{
    static void Main()
    {
        LinqProxy proxy = new LinqProxy();

        proxy.Select = exp => 
        { 
            Console.WriteLine("Select({0})", exp);
            return 1;
        };
        proxy.Where = exp => 
        { 
            Console.WriteLine("Where({0})", exp);
            return 2;
        };

        int query = from …
Run Code Online (Sandbox Code Playgroud)

.net c# linq linq-query-syntax

5
推荐指数
2
解决办法
487
查看次数

标签 统计

.net ×1

android ×1

c# ×1

linq ×1

linq-query-syntax ×1

touch ×1