ボタンをクリックして編集テキストにフォーカスをプログラムで設定および削除する方法

アンドロイド

編集テキストが1つあり、ボタンがクリックされたらフォーカスを設定したいのですが、ソフトキーボードでEnterキーまたはDoneを押したときにステータスを編集した後、フォーカスを再度削除してサーバーにリクエストを送信します。

これがXMLの編集テキストです

<EditText
                android:id="@+id/time_statusTV"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignBottom="@+id/selectIBT"
                android:layout_alignLeft="@+id/profile_name"
                android:layout_toLeftOf="@+id/add_timeline_status_IBTN"
                android:layout_toRightOf="@+id/image_profile"
                android:background="@android:color/transparent"
                android:focusable="false"
                android:maxLines="2"
                android:text="short description of \nyourself that can go\nover 2 lines."
                android:textColor="@color/text_color_gray"
                android:textSize="18sp" />

ここで私がボタンクリックで何をしているのか

case R.id.add_timeline_status_IBTN:
        time_statusTV.setFocusable(true);
        time_statusTV.requestFocus();

        break;

これが私の編集テキストキーイベントです

time_statusTV = (EditText) rootView.findViewById(R.id.time_statusTV);
    time_statusTV.setOnKeyListener(new OnKeyListener() {

        @Override
        public boolean onKey(View v, int keyCode, KeyEvent event) {
            // TODO Auto-generated method stub
            if ((event.getAction() == KeyEvent.ACTION_DOWN)
                    && (keyCode == KeyEvent.KEYCODE_ENTER)) {

                // My code

                time_statusTV.clearFocus();
            }
            return false;
        }
    });

しかし、ボタンをクリックしても何も起こりません。

mmlooloo

フォーカスの設定とキーボードの表示と非表示を混同していると思いますので、私の答えを試してください。

 case R.id.add_timeline_status_IBTN:

    time_statusTV.setFocusable(true);
    time_statusTV.requestFocus();
    InputMethodManager imm = (InputMethodManager)this.getSystemService(Service.INPUT_METHOD_SERVICE);
    imm.showSoftInput( time_statusTV, 0);

そしてそれをクリアするために:

imm.hideSoftInputFromWindow(your edittext.getWindowToken(), 0);

したがって、コードは次のようになります。

  time_statusTV = (EditText) rootView.findViewById(R.id.time_statusTV);
  time_statusTV.setOnKeyListener(new OnKeyListener() {

    @Override
    public boolean onKey(View v, int keyCode, KeyEvent event) {
        // TODO Auto-generated method stub
        if ((event.getAction() == KeyEvent.ACTION_DOWN)
                && (keyCode == KeyEvent.KEYCODE_ENTER)) {


            imm.hideSoftInputFromWindow( time_statusTV.getWindowToken(), 0); 
            time_statusTV.clearFocus();
        }
        return false;
    }
});

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

ボタンをクリックすると、プログラムでテキストフィールドにフォーカスが移動します

ビットマップエフェクトストーリーボードをContentControlにプログラムで追加および削除する方法

WPFでMVVMデザインパターンを使用してプログラムでデータグリッド行のフォーカスを選択および設定する方法

EditTextにプログラムでフォーカスを設定(およびキーボードを表示)するにはどうすればよいですか?

アプリスクリプトを使用して、Googleスプレッドシートの印刷領域をプログラムで設定および設定解除/削除するにはどうすればよいですか?

ボタンをクリックするたびに編集テキストを動的に削除する方法

カスタム フォントを使用してテキスト ビューで太字と斜体のスタイルを設定する (プログラムで)

編集ボタンをクリックした後に編集テキストを編集可能にする方法

ボタンjqueryをクリックしてテキストを設定およびリセットします

ViewControllerごとにカスタムスタッキングボタンクラスのボタンテキストを異なる方法で設定したい

UIを使用せずに、Dialogflowのノードフルフィルメントライブラリを使用してコンテキストをプログラムで設定および削除できますか?

IdentityManagementグリッドおよび編集ビューにカスタムプロパティを表示する

カスタム ダイアログでテキスト ボックスをフォーカスして、ボックス内でカーソルが点滅するようにする方法

リンクボタンのクリック時にグリッドビューでテキストボックスを表示および非表示にする方法

構築しているクロスプラットフォームライブラリでオペレーティングシステムAPI呼び出しを行うためにどの方法をお勧めしますか?

CheckboxTreeViewerで選択した項目をダブルクリックしたときに、キーボードカーソルフォーカスを取得してラベルテキストを編集する方法

EC2カスタムオリジンを持つリバースプロキシキャッシュとしてクラウドフロント間でSSLを設定するにはどうすればよいですか?

編集ボタンのテキストボックスに値を自動入力するには、クリックしてHTMLフォームの値を編集/更新します

ボタンクリックで別のコントロールにフォーカスを設定する

Javascriptを使用してHTMLフォームテキストボックスを編集するにはどうすればよいですか?

テキストフィールドからフォーカスを削除してボタンに設定するにはどうすればよいですか?

Androidを使用してトーストなし([変更]ダイアログボックス)を使用して、設定されたエラーメッセージに[編集]テキストボックスを作成するにはどうすればよいですか?

VBフォームアプリケーションのダイアログボックスで設定された値を呼び出し元に渡す方法

ドロップダウンリストJavaScriptを使用してテキストボックスのフォントサイズを設定する方法

TinyMCE 4.0+カスタムボタンは、「カスタムフォーマット」テキストをクリックするとアクティブおよび非アクティブになります

Rマークダウンを使用して、テキスト、ヘッダー、およびリストをプログラムで挿入します

リストビューをクリックした後、ボタンと編集テキストを含むミニフォームを表示する

背景がテキストとともに広がるフラッターのキャンバス上で、カスタム編集可能なテキストボックスを作成するにはどうすればよいですか?

WPF MVVM:ボタンのクリック時にDatagridで現在選択されているアイテムにフォーカスを設定します

TOP 一覧

  1. 1

    STSでループプロセス「クラスパス通知の送信」のループを停止する方法

  2. 2

    Spring Boot Filter is not getting invoked if remove @component in fitler class

  3. 3

    Python / SciPyのピーク検出アルゴリズム

  4. 4

    セレンのモデルダイアログからテキストを抽出するにはどうすればよいですか?

  5. 5

    tkinterウィンドウを閉じてもPythonプログラムが終了しない

  6. 6

    androidsoongビルドシステムによるネイティブコードカバレッジ

  7. 7

    ZScalerと証明書の問題により、Dockerを使用できません

  8. 8

    VisualStudioコードの特異点/ドッカー画像でPythonインタープリターを使用するにはどうすればよいですか?

  9. 9

    ビュー用にサイズ変更した後の画像の高さと幅を取得する方法

  10. 10

    二次導関数を数値計算するときの大きな誤差

  11. 11

    Ansibleで複数行のシェルスクリプトを実行する方法

  12. 12

    画像変更コードを実行してもボタンの画像が変更されない

  13. 13

    Reactでclsxを使用する方法

  14. 14

    Three.js indexed BufferGeometry vs. InstancedBufferGeometry

  15. 15

    __init__。pyファイルの整理中に循環インポートエラーが発生しました

  16. 16

    PyTesseractを使用した背景色のため、スクリーンショットからテキストを読み取ることができません

  17. 17

    値間の一致を見つける最も簡単な方法は何ですか

  18. 18

    reCAPTCHA-エラーコード:ユーザーの応答を検証するときの「missing-input-response」、「missing-input-secret」(POSTの詳細がない)

  19. 19

    三項演算子良い練習の代わりとしてOptional.ofNullableを使用していますか?

  20. 20

    好き/愛の関係のためのデータベース設計

  21. 21

    エンティティIDを含む@RequestBody属性をSpringの対応するエンティティに変換します

ホットタグ

アーカイブ