使用普通的EditText,添加一个键监听器可以在我的应用程序运行时提供预期的行为。但是,使用MaterialChipsInput库向ChipsInputEditText添加键侦听器不会产生预期的行为。来自密钥监听器的onKey方法似乎完全被调用,没有任何日志语句出现在控制台中。代码如下所示:
public boolean onKey(View view, int keyCode, KeyEvent event) {
Log.i("compose message", "onKey called");
if ((event.getAction() == KeyEvent.ACTION_DOWN)
&& (keyCode == KeyEvent.KEYCODE_SPACE)){
Log.i("compose message", " onKey called");
String userName = ((ChipsInputEditText) view).getText().toString();
Constants.DATABASE.child("userlist").orderByValue().equalTo(userName)
.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if (dataSnapshot.exists()){
Constants.DATABASE.child("users/"+dataSnapshot.getKey())
.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
HilarityUser hu = dataSnapshot.getValue(HilarityUser.class);
chipsInput.addChip(new HilarityUserChip(hu));
}
@Override
public void onCancelled(DatabaseError databaseError) {}
});
} else {
//todo show toast
return;
}
}
@Override
public void onCancelled(DatabaseError databaseError) {}
});
}
return false;
}
是否有我掩饰的内容,或者我应该使用自动完成TextView和RecyclerView制作片段以显示芯片?