Android - 如何判断用户是否在TextView之外的任何地方“点击”?

时间:2012-02-09 05:34:13

标签: android events focusable

我有一个TextView,可以在触摸时转换为EditView。但是,当用户触摸EditView之外的任何地方时,我希望发生相反的情况。我曾尝试使用setOnFocusChangeListener,但只有在其他方面获得重点时才能使用onTouch。我知道我可以拦截{{1}}并检查那里,但有没有更简单的方法来处理这种情况?

2 个答案:

答案 0 :(得分:1)

我也在我的项目中使用了这个,并按如下方式解决了这个问题:

我将EditText外部的布局设置为“focusable = true”和“clickable = true”,EditText没有背景 因此它看起来像一个TextView,在焦点更改时我改变了EditText的文本颜色以便用户 可以看到他/她可以编辑文本。然后,外部布局在点击时有一个OnClickListener 我隐藏软件键盘并将文本颜色更改回TextView颜色。这一切 正在工作,没有切换元素。如果需要,可以将两个元素放在中 一个FrameLayout,以确保元素在布局中具有相同的位置,实现一个 在TextView上的OnClickListener,在onClick事件中,然后切换对象可见性。

也许这个想法可以帮助你;)

答案 1 :(得分:0)

设置TextView的父级,并将视图编辑为可聚焦。

使所有布局和视图都可以点击,并在每个布局和视图上实现onClickListener,如下所示写onClickListener:

private ClickListener implements OnClickListener
{
    public void onClick(View view)
    {
         if(v.getId()!=R.id.editView)
         {
              //Write your code here to replace views
         }
    }
}