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