我是java新手,我正在构建一个android studio应用程序。我有一个聊天,用户可以在其中输入消息。是否可以创建包含某些单词的数组列表。 例如。
列表 listL = new ArrayList<>();
listL.add("one");
listL.add("two");
listL.add("three");
如果用户输入了这些单词中的任何一个,我可以提示一条消息。例如:如果用户输入了“一”。
我已经尝试过
if (message.contains((CharSequence) listL)){
Toast.makeText(Chat.this,"This message contains a word on the array list", Toast.LENGTH_LONG).show();
}
我的应用程序然后崩溃并出现以下错误。
java.lang.ClassCastException:java.util.ArrayList无法转换为java.lang.CharSequence
任何帮助将不胜感激。
最佳答案
如果您想在单击某个按钮时检查文本。 您可以在按钮的 onClickListener 中使用此代码
if(yourList.contains(edittext.getText().toString()){
//show your message
}
您当前正在尝试在输入文本中查找列表,但您需要尝试在列表中查找输入文本,并且无法将列表转换为 CharSequence,因为它是 Arraylist。
如果您想查看编辑文本的更改,请使用
edittext.addTextChangedListener(new TextWatcher() {
public void onTextChanged(CharSequence s, int start, int before,
int count) {
if(list.contains(s)) {
//do your work here
}
}
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
}
public void afterTextChanged(Editable s) {
}
});
关于java - 创建包含单词的数组列表并将其与用户输入的消息进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55863842/