0

我的布局中有 EditView 一个按钮和一个 Spinner。下面给出一张图片:

在此处输入图像描述

当我专注于搜索字段(EditText)时,我正在使微调器(BrowseBy)消失。代码在这里:

    edTxt_SearchField.setOnFocusChangeListener
    (new OnFocusChangeListener() {
    @Override
    public void onFocusChange(View v, boolean hasFocus) {

                        if (edTxt_SearchField.hasFocus()) {
                            spnrBrowseBy.setVisibility(View.GONE);
                        }

                    }
                });

这里发生的是软键盘出现。还要注意微调器不见了。

在此处输入图像描述

当我在这里按 backKey 时,软键盘就隐藏了。我希望微调器也应该像第一张图片一样重新出现在这里。或者有什么方法可以检测到 keyBoardHide 事件?

我试过onConfiguration更改方法,没有效果。注意:我也无法覆盖 onBackPresskey() 方法,因为我的活动正在扩展 ActivityGroup 类。

4

2 回答 2

0

您是否将 configChages 放入清单中以便调用 onConfigurationChage?

<activity android:name="TestActivity"
          android:configChanges="keyboardHidden">

否则应该只是

public void onConfigurationChanged(Configuration newConfig){
    spnrBrowseBy.setVisibility(View.VISIBLE);
    spnrBrowseBy.requestLayout();
    super.onConfigurationChanged(newConfig);
}
于 2012-12-13T09:44:36.843 回答
0

通过以下方式,您可以对 EditText 的 Got Focus 和 Lost Focus 采取行动。

yourEditText.setOnFocusChangeListener(new OnFocusChangeListener() {
    public void onFocusChange(View v, boolean hasFocus) {
        if(hasFocus){
             Toast.makeText(getApplicationContext(), "Got Focus", Toast.LENGTH_LONG).show();            
        }else{
             Toast.makeText(getApplicationContext(), "Lost Focus", Toast.LENGTH_LONG).show();           
        }
});

希望这对您有所帮助。

谢谢。

于 2012-12-13T10:43:33.563 回答