android - 如何在 TouchUp 事件中获取 ViewID

标签 android textview

我正在实现将一个 TextView 拖放到另一个 TextView 。我创建了 OnTouchListener 并应用于我的两个 TextViews

我是这样写OnTouch函数的

public boolean onTouch(View v, MotionEvent e) 
    {
        switch(e.getAction())
        {
            case MotionEvent.ACTION_DOWN:                        
                Log.d("Down",v.getId()+"");
                break;

            case MotionEvent.ACTION_MOVE:                        
                 Log.d("Move",v.getId()+"");
                 break;

            case MotionEvent.ACTION_UP:                       
                 Log.d("Up",v.getId()+"");
                 break;
        }

        return false;
    }

我在所有三种情况下都遇到了问题,它返回了第一次触发触摸事件的 TextView 的 ID。我想获取其他TextView的ID 例如,它只是给我关闭事件“tv1”的 ID。再次在 Move 事件和 Up 事件上给我“tv1”(尽管我的位置已更改为 ID 为 tv2 的其他 TextView)

如何获取发生 Touch Up 事件的 TextView 的 ID

最佳答案

从逻辑上讲,您不应该期待 tv2 的 up 事件。因为 touchListener 会在您触摸该 View 后进行监听,然后重复调用直到发生事件。

所以在我的理解中,通过计算 x,y 坐标来处理 tv2 触摸是唯一的方式

关于android - 如何在 TouchUp 事件中获取 ViewID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8340699/

相关文章:

php - 移动应用程序如何使用 API 并证明其要修改的 Facebook ID 已在 Facebook 上登录并获得授权?

android - 如何以编程方式在右侧Textview设置图像

android - 如何确定 Android 中的 TextView 适合多少文本?

java - 更新自定义 ListView 中的 textview

android - 在android中的 TextView 中单击时获取链接文本的值

Android SDK 模拟器错误 : Broken AVD system path

android - 如何在一个页面上禁用 Android 后退按钮并更改为每隔一个页面上的退出按钮

java - 如何通过匹配 id 获取 SQLite 列的总和

java - 门面模式和管理类

java - 修复 Android TextView 上的两个字符串