我想用返回键的监听器初始化一个compose字段。在文档中,如果由于按下回车键而被调用,actionId
将EditorInfo.IME_NULL
为actionId
。我将KeyEvent
与该值进行了比较。它还说如果由返回键触发,我们会收到KeyEvent.ACTION_UP
个对象,所以我测试它为onEditorAction()
,这是与释放键相对应的值。
当我运行代码时,它适用于运行KitKat的设备,但在另一个运行Lollilop的设备中,它不会消耗返回键,也不会调用public void setupChat() {
Log.i(LOG_TAG, "setupChat()");
oETConversation.setOnEditorActionListener(new TextView.OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
Log.i(LOG_TAG, "onEditorAction()");
if (actionId == EditorInfo.IME_NULL && event.getAction() == KeyEvent.ACTION_UP) {
String s = v.getText().toString();
sendMessage(s);
}
return true;
}
});
}
public void sendMessage(String s) {
Log.i(LOG_TAG, "sendMessage()");
Log.i(LOG_TAG, s);
}
。它只是插入一个新行。这是代码:
Database db = client.database("dbTempName", true);
// Used google.gson.JsonObject instead of org.json.JSONObject.
com.google.gson.JsonParser parser = new com.google.gson.JsonParser();
com.google.gson.JsonObject jsonObject = parser.parse("{\"hello\": \"data\"}").getAsJsonObject();
db.save(jsonObject);
答案 0 :(得分:2)
试试这个,我就是这样做的,而不是keyEvent
:
oETConversation.setOnKeyListener(new View.OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (event.getAction() == KeyEvent.ACTION_UP && keyCode == KeyEvent.KEYCODE_ENTER) {
String s = oETConversation.getText().toString();
sendMessage(s);
return true;
}
return false;
}
});
希望这会有所帮助;)
<强>更新强>
在xml中确保您的editText包含android:singleLine="true"
字段。