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