2012-02-09 65 views
1

我有一个TextView,可以通过触摸转换为EditView。但是,当用户触摸EditView以外的任何地方时,我想要发生相反的情况。我尝试过使用setOnFocusChangeListener,但只有在其他方面获得关注时才会起作用。我知道我可以拦截onTouch并在那里检查,但有没有更简单的方法来处理这种情况? TextView的和编辑视图的Android - 如何判断用户是否在TextView以外的任何位置点击?

回答

0

设置家长可聚焦

使所有布局和视图点击,并实现OnClickListener每个写onClickListener象下面这样:

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

我在我的项目中使用这个太并已解决此问题,如下所示:

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

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

相关问题