java - 创建包含单词的数组列表并将其与用户输入的消息进行比较

标签 java android arraylist

我是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/

相关文章:

Java方法接受不同父类(super class)的ArrayList,必须使用Interface吗?

java - Spring Boot应用程序无法初始化类org.apache.logging.log4j.util.PropertiesUtil

java - JOOQ 选择与组不同的计数

java - 如何使 Filereader 的 readLine() 转到上一个位置

Android Studio 不生成签名的 apk

android - Json 不返回其中的属性

java - 如何在数组列表中搜索字符串并将其删除

Java 在字符串中查找 URL 并创建 HTML 链接标记

java - 为迭代变量重写 toString()

java - 如何通过新 Activity 的响应为 "choose location"来更改一项 Activity 中按钮的文本 "location-india"?