2012-11-02 6 views
5

私はそこにチャット機能を提供するアプリを作成しています。 OnKeyListenerを設定した画面にEditTextがあります。メッセージを入力した後、ユーザが「Enter」キーを押すと、そのメッセージが画面に表示されます。それはうまく動作します。ここに私のEditTextです:EditTextで意図的に新しい行に移動するには?

<EditText android:id="@+id/chatMessageField" 
    android:layout_height="wrap_content" android:layout_width="fill_parent" 
    android:layout_gravity="center_horizontal|center_vertical" 
    android:layout_marginRight="5dip" android:layout_marginLeft="5dip" 
    android:maxLines="2" android:minLines="1" android:scrollbars="vertical" 
    android:hint="@string/chatMessageHintText" android:textColorHint="#3b64a8"> 
</EditText> 

ユーザーはのEditTextがテキストをラップし、新しい行に行く前に新しい行に移動したいときに問題があります。ユーザーが改行してEnterキーを押すと、メッセージが送信されます。

チャットメッセンジャーでは、「Shift + Enter」(または他のキーの組み合わせ)を同時に押すと、ユーザーが新しい行に移動することがわかりました。 Androidで同時に押された「Shift + Enter」(または他のキーの組み合わせ)キーを検出するにはどうすればよいですか? Androidでこの機能を実現する方法はありますか?あなたのOnKeyListener方法で

答えて

4

EnterShift Enterをチェックし、それぞれSendNew Lineの独立した機能を提供します。

+1

を行きますクリックしてsimultanえ?すべてのコードスニペット? –

+0

'if((event.getAction()== KeyEvent.ACTION_DOWN) \t \t \t &&(keyCode == KeyEvent)KEYCODE_ENTER)){ \t \t \t //あなたの送信機能 \t \t \tリターンはtrue。 }そうであれば((event.getAction()== KeyEvent.ACTION_DOWN) \t \t \t &&(のkeyCode == KeyEvent.KEYCODE_ENTER \t \t \t \t \t &&のkeyCode ==(KEYCODE_SHIFT_LEFT || KEYCODE_SHIFT_RIGHT))){ //新しい行機能 がtrueを返します。 } '
コードがコンパイルされていないか、構文エラーが含まれている可能性があります。 Shiftの代わりに、LongPressをEnterに使用して、「改行」機能を実現することもできます。 – Chand51

+0

KeyEventおよびlong pressイベントについては、http://developer.android.com/reference/android/view/KeyEvent.html – Chand51

0

ここで 'OnKeyListener'メソッドを設定できます。次のように各キーのためには、機能性を提供することができます。..

editText.setOnKeyListener(new View.OnKeyListener() { 
public boolean onKey(View v, int keyCode, KeyEvent event) { 
    switch(keyCode) { 
     case KeyEvent.KEYCODE_0: 
      //handle code for pressing 0 
      break; 
     case KeyEvent.KEYCODE_1 
      //handles code for pressing 1 
     default: 
      break; 
    } 
} 
}); 

だけシフトするコードを検索し、

それが動作するかもしれないを入力してみてください。 楽しんでください。

+2

を参照してください。私は楽しんでいないよ!私はすでにこれを知っています。質問をよくお読みください。 –

+0

@ YogeshSomani誰かがShiftキーを押しながらEnterキーを押すと、改行が開きます。私は正しい? –

+0

はい弟。私はそれがほしいと思う。 –

1

解決策を探しているうちに、thisリンクを取得しました。あなたの問題を解決するかもしれません。

あなたが投稿してくださいいくつかの他の最良の方法は、これは非常に便利で良い質問です..、。

ありがとうございました。

EDIT ......................

はまた..カスタムショートカットを使用して、より良いためthisのリンクを参照してください。

5

これを試してみてください...役に立つかもしれません。

youredittext.setInputType(EditorInfo.TYPE_TEXT_FLAG_MULTI_LINE); 

としてのEditTextの入力を設定し

は、次に追加:

android:singleLine="false" 

または

youredittext.setSingleLine(false); 

をまた、私はShiftキーをチェックし、ボタンを入力しますどのようにClick Here

+0

助けてくれました。ありがとう。 – dazed

関連する問題