0

レイアウトにEditViewボタンとスピナーがあります。写真を以下に示します。

ここに画像の説明を入力してください

検索フィールド(EditText)にフォーカスすると、スピナー(BrowseBy)が消えます。コードはここにあります:

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

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

                    }
                });

ここで何が起こるかというと、softkeyBoardが表示されます。また、スピナーがなくなっていることに注意してください。

ここに画像の説明を入力してください

ここでbackKeyを押すと、ソフトキーボードが隠れています。スピナーを1枚目の画像と同じようにここに再現してほしい。または、keyBoardHideイベントを検出できるメソッドはありますか?

onConfiguration変更メソッドを試しましたが、効果がありません。注:アクティビティがActivityGroupクラスを拡張しているため、onBackPresskey()メソッドをオーバーライドすることはできません。

4

2 に答える 2

0

次の方法で、EditText のフォーカスを得た場合とフォーカスを失った場合にアクションを実行できます。

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 に答える
0

onConfigurationChage が呼び出されるように、configChages をマニフェストに入れましたか?

<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 に答える