1

キーボードの [完了] ボタンを押して、編集設定ダイアログ (ここに示されているようにhttp://twitpic.com/18ttdp )を閉じられるようにしたいと考えています。

現在、[完了] を押すと、キーボードが閉じられますが、ダイアログは残ります。

アプリケーションの他の部分では、次のようなコードを使用して「完了」キーの押下をインターセプトし、アクティビティでアクションを実行します。

text.setOnEditorActionListener(new TextView.OnEditorActionListener() {
        @Override
        public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
            if (actionId == EditorInfo.IME_ACTION_DONE) {
                //do stuff here
                return true;
            }
            return false;
        }
    });

ただし、設定アクティビティまたはレイアウト xml でこれと同じ効果を実現する方法がわかりません。

4

3 に答える 3

0

私は同じ問題を抱えていました、これが私がそれを解決した方法です:

    // edit text to get input
    final EditText input = new EditText(this);
    //input.setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL);
    input.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_FLAG_IME_MULTI_LINE);
    alert.setView(input);

    // ok button
    alert.setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int which) {
            // do stuff
        }
    });

私のニーズでは、入力は数字でした(したがってコメントアウトされた行です)が、テキストが必要な場合はそこにあるものを使用してください。

于 2011-03-19T13:02:48.673 に答える
0

そこにリスナーを追加する代わりに、次のようなことを行う必要があります。

getDialog().setOnKeyListener(new OnKeyListener() {

    @Override
    public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) {
        dialog.dismiss();
        return true;
    }
});

このコードは、キーが押されたときにダイアログを閉じます。

于 2010-03-16T03:24:11.213 に答える