2017-02-27 22 views
3

私はEditextを持っています。これには、属性ディジットとimeOptions(actionDone)が一緒に含まれています。桁& & imeOptionsを使用しながら見つからないedittext imeOptions actionDone digits属性で作業していませんか?

<android.support.v7.widget.AppCompatEditText 
     android:id="@+id/edit_text_name" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:digits="1234567890abcdefghijklmnopqrstuvwxyz....." 
     android:hint="@string/item_name" 
     android:imeOptions="actionDone" 
     android:maxLines="1" /> 

actionDone(Softkeywordで完了ボタン)を一緒属性。私たちはフォーカスを変更しない入力ボタンしか見つけることができません。私はdigit属性をスキップして試してみた後、imeOptionsは正しく動作しています。アンドロイドにimeOptionsを設定するとき:「桁アンドロイド」のEditTextフィールドで問題を引き起こしているようだと:imeOptions =」事前

答えて

4

で おかげでジャストと私のテストは

android:singleLine = "true" 
+0

1行が省略されています。だからこそ私はmaxLines = 1 –

+0

@TijoJoseph maxLinesを実際に使っているのですか?それは私のために複数の行を許可しました。理由は、私はこの推奨されないコードを使用します。 –

+0

@TijoJoseph、singleLineはmaxLines = 1と同じではありません。彼らは別の仕事をするので、singleLineはまだ頻繁に使用されています。 – CoolMind

1

あなたのEditTextに単一行=「true」を追加しますactionDone "キーボードに「完了」ボタンが表示されませんでした。

私は数字の設定なし

android:inputType="text" 

を使用すると、キーボードはその後、「完了」(または端末のキーボードに応じて、ダニ)を提示し、私は、使用してキーストロークをキャプチャすることができます:

editextField.setOnEditorActionListener(new TextView.OnEditorActionListener() { 
      @Override 
      public boolean onEditorAction(TextView textView, int actionId, KeyEvent keyEvent) { 
       int result = actionId & EditorInfo.IME_MASK_ACTION; 
       switch(result) { 
        case EditorInfo.IME_ACTION_DONE: 
         // put your code here. 
         break; 
       } 
       return false; 
      } 
     }); 
1
view.setRawInputType(view.getInputType & ~EditorInfo.TYPE_TEXT_FLAG_MULTI_LINE) 

後者はinputmethodに基づいてのKeyListenerを設定し、ますので、setRawInputType()なくsetInputType()を呼び出すことが重要です属性は破棄されます。 setRawInputType()は入力メソッドのみを変更し、KeyListenerには触れません。さらに、& ~EditorInfo.TYPE_TEXT_FLAG_MULTI_LINEはマルチラインモードを無効にするので、選択したimeOptionが表示されるはずです。

基本的には、singleLineとmaxLinesの動作が異なります。

+0

それは仕事です、ありがとうございます。 – katso

関連する問題