0

XMLレイアウトに2つの要素(TextView)があり、LongClickを押すとユーザーに新しい値の入力を求め、DONEボタンをクリックすると、setText()を使用してtvScoreHomeに新しく入力した値を表示する必要があります。 。

上記の要素をロングクリックすると、編集フィールドとキーボードが期待どおりに表示されます。ただし、何も入力できません。何かを入力すると何も表示されず(ただし、デバイスはボタンが押されたかのように振動します)、DONEボタンをクリックすると同様に振動しますが、キーボードを終了せず、tvScoreHome要素に何も表示されません。

なぜ何かアイデアはありますか?

    // set the onLongClickListener for tvScoreHome
    tvScoreHome.setOnLongClickListener(new View.OnLongClickListener() {
        @Override
        public boolean onLongClick(View v) {
            final EditText userInput = (EditText) findViewById(R.id.userInput);

            InputMethodManager imm = (InputMethodManager) context.getSystemService(Service.INPUT_METHOD_SERVICE);

            userInput.setVisibility(View.VISIBLE);
            imm.showSoftInput(userInput, 0);
            tvScoreHome.setText( userInput.getText() );
            userInput.setVisibility(View.INVISIBLE);

            return true;
        }
    });
4

1 に答える 1

1

データをコピーしてEditTextを非表示にする前に、ユーザーにテキストを入力する機会を与える必要があります。
リスナーから次の2行を削除します。

tvScoreHome.setText( userInput.getText() );
userInput.setVisibility(View.INVISIBLE);

おそらく、フォーカスを失ったときにOnFocusChangeListenerを使用してこれらの2行を実行できますuserInput

于 2012-12-27T21:44:30.983 に答える