相关疑难解决方法(0)

如何通过系统发送合成的MotionEvent?

我知道如何"合成"一个MotionEvent:

  event = MotionEvent.obtain(downTime, eventTime, MotionEvent.ACTION_DOWN, x, y, 0);
Run Code Online (Sandbox Code Playgroud)

我所坚持的是如何通过系统"发送/发布/发布/分发"它,以便"真实"用户实际用他或她的手指触摸屏幕时处理它.

这有可能吗?

如果是这样,我该如何做到这一点?

events android

13
推荐指数
2
解决办法
1万
查看次数

在iphone上模拟触控

我试图在UIWebView上模拟触摸,我如何以编程方式在某个位置触发触摸事件?(x和y坐标)只需调用touchesBegan?

理想情况下,我想在没有任何javascript黑客的情况下这样做,因为将来它可能不是一个uiwebview

iphone events objective-c touch

11
推荐指数
1
解决办法
2万
查看次数

为什么MotionEvent模拟不起作用?

在练习应用程序的其中一个视图中,我尝试以编程方式执行文本选择.

我能够(以编程方式)输入"文本选择模式",它由视图左上角的CursorControllers(AKA句柄)可视地指示.

如果我手动拖动右边的CursorController,然后再次单击它(在模拟器中),它按预期工作(完美),显示一条简短的消息:"文本复制到剪贴板".

但是当我尝试以编程方式拖动正确的CursorController时,没有任何反应.

我尝试这样做的方法是模拟MotionEvent.在视图中,我打电话给:

  event = MotionEvent.obtain(downTime, eventTime, MotionEvent.ACTION_DOWN, x, y, 0);
  MainActivity.onTouch(this, event);
Run Code Online (Sandbox Code Playgroud)

在MainActivity中我当然实现了OnTouchListener:

@Override
public boolean onTouch(View v, MotionEvent event) { // called BEFORE button's onTouchEvent()
    Log.v("MainActivity::onTouch()", describeEvent(v, event));
    switch (event.getAction()) { 
        case MotionEvent.ACTION_DOWN: 
        case MotionEvent.ACTION_UP: 
            if (!v.hasFocus()) { 
                v.requestFocus(); 
             } 
             break; 
    } 
    return false; 
}
Run Code Online (Sandbox Code Playgroud)

如果我理解正确,仅仅从onTouch返回'false',Android就会继续寻找另一个UI对象来使用MotionEvent对象,最终到达我的视野.

为什么不这样呢?

我必须遗漏一些非常基本的东西......

events android touch textselection

6
推荐指数
1
解决办法
4105
查看次数

标签 统计

events ×3

android ×2

touch ×2

iphone ×1

objective-c ×1

textselection ×1