戻るキーイベントをキャプチャする方法は次のとおりです。1. onKeyPreImeをオーバーライドするためのエクステント編集テキストビュー
package com.test.test;
import android.content.Context;
import android.util.AttributeSet;
import android.view.KeyEvent;
import android.widget.EditText;
/**
* Created by sumit.saurabh on 11/10/16.
*/
public class ChatEditText extends EditText
{
/* Must use this constructor in order for the layout files to instantiate the class properly */
public ChatEditText(Context context, AttributeSet attrs)
{
super(context, attrs);
// TODO Auto-generated constructor stub
}
private KeyImeChange keyImeChangeListener;
public void setKeyImeChangeListener(KeyImeChange listener)
{
keyImeChangeListener = listener;
}
public interface KeyImeChange
{
public void onKeyIme(int keyCode, KeyEvent event);
}
@Override
public boolean onKeyPreIme(int keyCode, KeyEvent event)
{
if (keyImeChangeListener != null)
{
keyImeChangeListener.onKeyIme(keyCode, event);
}
return false;
}
}
2. XMLでChatEditText
<com.test.test.ChatEditText
android:id = "@+id/messageEditText"
android:layout_width = "match_parent"
android:layout_height = "wrap_content"
android:layout_gravity = "bottom"
android:layout_marginLeft = "12dp"
android:layout_marginRight = "30dp"
android:background = "@null"
android:hint = "Type your message"
android:inputType = "textMultiLine"
android:singleLine = "false"
android:textColorHint = "#c4c0bd"
android:textSize = "18sp"/>
3.次にどこでもそうなどからリスナーを添付:
private ChatEditText messageEditText;
messageEditText =
(ChatEditText) findViewById(R.id.messageEditText);
messageEditText.setKeyImeChangeListener(new ChatEditText.KeyImeChange(){
@Override
public void onKeyIme(int keyCode, KeyEvent event)
{
if (KeyEvent.KEYCODE_BACK == event.getKeyCode())
{
// do something
}
}});
は私を見るあなたはtxtSearchBarはこの1つ 1. – confucius
これまでにしようとしているものを.setOnEditorActionListener(new EditText.OnEditorActionListener()) \t {\t \t public boolean onEditorAction(T extView V、INTたAction、イベントのKeyEvent) \t {\t IF(event.getKeyCode()== KEYCODE_BACK) \t {\t \t layoutFocus.requestFocus()。 \t \t \t \t} \t return false; \t} \t}); 2. onBackPressed、layoutFocus.requestFocus();のメソッド2。 3。私は100ポイントの評判以上のものを持っている場合、私は私の質問に答えることができないとして、より多くのコードを追加することはできません – Catalin
この活動のマニフェストにhiddenKeyboardを追加します。public voidがonConfigurationChanged \t @Override \tを置く(構成newconfigに保存):) – Catalin