質問

大丈夫、変な問題です。私の活動Main.java やDialogLikeActivity.java.

していま

EditText (articleNumber) - phone input type (in .XML)
Button (articleOK)
list (list)

DialogLikeActivity (活動が風とのダイアログテーマと android:windowSoftInputMode="stateAlwaysVisible" タグのマニフェストしていま

EditText (articlePackaging) - phone input type (in .XML)
Button (finish)

私が欲しがっているのか?入口や階段に入れない主な活動にキーボードが開く電話input typeことになる。私はクリックしEditTextの分野ごとに何かを入力して"OK"します静varibleな状態1メインメニューからツールキーボード)"でよろしいでしょうか静的変数の主な活動です。

public static int keyboardMode = 1;

クリックOK開DialogLikeActivityキーボードオープン(電話入力タイプ)です。私は[OK]をクリックしonResumeのメインキ

@Override
public void onResume() {
    super.onResume();

    if (keyboardMode == 1) {
        showKeyboard(articleNumber);
    } else {
        hideKeyboard(articleNumber);
    }
}   

public static void showKeyboard(View view) {
    InputMethodManager mgr = (InputMethodManager) myContext.getSystemService(Context.INPUT_METHOD_SERVICE);
    mgr.showSoftInput(view, InputMethodManager.SHOW_IMPLICIT);

    ((InputMethodManager) myContext.getSystemService(Context.INPUT_METHOD_SERVICE)).showSoftInput(view, 0);

    articleNumber.setInputType(InputType.TYPE_CLASS_PHONE);
}

public static void hideKeyboard(View view) {
    InputMethodManager mgr = (InputMethodManager) myContext.getSystemService(Context.INPUT_METHOD_SERVICE);
    mgr.hideSoftInputFromWindow(view.getWindowToken(), 0);

    articleNumber.setInputType(0);
}

// Listener to showKeyboard if user clicks on EditText field and set InputType to PHONE, insted it would remain (0)

    articleNumber.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            showKeyboard(articleNumber);
        }
    });

// Listener so when user touches the list - it hides the keyboard and sets variable on 2 so keyboard is always HIDDEN

    list.setOnTouchListener(new View.OnTouchListener() {

        @Override
        public boolean onTouch(View v, MotionEvent event) {

            hideKeyboard(articleNumber);
            keyboardMode = 2;

            return false;
        }
    });

// Listener so when user clicks on ArticleOK - keyboard is always OPEN

articleOk.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {               
                keyboardMode = 1;

                    Intent i = new Intent(NewOrderArticles.this, NewQuantityDialog.class);
                    i.putExtra("articleid", articleId);
                    startActivity(i);
            }
        }
    });

が認められるとキーボードが開く電話を入力タイプです。まhowewerク/クロールのリストをメインkeyboardMode変数が2(非表示)でのキーボードを隠す(hideKeyboardと呼ばれる手法です。onTouch listener).ればをクリック項目のリストを再度開DialogLikeActivityオープンのキーボード、電話で入力タイプです。れば[OK]をクリックしonResumeメインキや隠キーボード参照コードupthere).

いように見えるビデオをご覧ください(OKボタンがarticleOKボタン)- ビデオ(3,24MB).

う-ん[OK]をクリックし(articleOK)ボタン キーボードをもつことを示す必要があ, いしの開始にスクロール下のリストまたはをクリック項目のリスト キーボードできるようにしDialogLikeActivity活動, 他に主な滞在を隠し(昇、雨などの天候によればをクリックしEditTextの分野のトップで。

ビデオでご覧"HTC Desireやべての動作をしたいもの-Galaxy Sの メインメニューからツール部 は、をタップするとスクロールのリスト してオープンのキーボード文字タイプ(!) の代わりに隠れていま.が問題なのでしょうか。

でOKボタンメインメニューからツールキーボード(主DialogLikeActivity).場合はをタップするとスクロールの一覧を示すキーボードのみDialogLikeActivity.

役に立ちましたか?

解決

私は同じ問題とEditTextのジャンのキーボードます。クリックした後、OKボタンまたはCancelでは、仮想キーボードしない非表示を示すキーボード文字タイプ、Samsung Galaxy S装置です。このクラスタ上でのエミュレータ2.1 2.2っHTCヒーローませんのでご注意くださいSamsung Galaxy S"デバイス2.2となります。にも挑戦しました:mgr.toggleSoftInput(InputMethodManager.HIDE_IMPLICIT_ONLY,0);ものはなかなか機会のない

編集:ok、問題をこのラインのみ:

mgr.toggleSoftInput(0, 0);

となくこれら2つのライン:

mgr.hideSoftInputFromWindow(view.getWindowToken(), 0);
articleNumber.setInputType(0);
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top