1

我有一个TextView可以转换为EditViewon touch 的。但是,我希望当用户触摸EditView. 我试过使用setOnFocusChangeListener,但只有当其他东西获得焦点时才会起作用。我知道我可以onTouch在那里拦截和检查,但有没有更简单的方法来处理这种情况?

4

2 回答 2

1

我在我的项目中也使用了这个,并解决了这个问题:

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

也许这个想法对你有帮助;)

于 2012-02-09T05:47:28.177 回答
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
         }
    }
}
于 2012-02-09T05:47:08.023 回答