編集テキストが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;
}
});
しかし、ボタンをクリックしても何も起こりません。
フォーカスの設定とキーボードの表示と非表示を混同していると思いますので、私の答えを試してください。
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]
コメントを追加