Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/200.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在android中实现多行编辑文本的搜索?_Java_Android_Search_Android Edittext_Multiline - Fatal编程技术网

Java 如何在android中实现多行编辑文本的搜索?

Java 如何在android中实现多行编辑文本的搜索?,java,android,search,android-edittext,multiline,Java,Android,Search,Android Edittext,Multiline,我有一个用于搜索客户名称的编辑文本。它是一个多行 编辑文本字段。我想让最终用户能够添加 一个编辑文本中有多个用户 因此,名中的最终用户类型从下拉列表中选择用户 向下并按enter键添加新用户。我可以搜索 第一个用户,但无法搜索下一个用户 以下是我正在使用的代码:- public TextWatcher searchTextWatcher = new TextWatcher() { @Override public void beforeTextChanged(CharSequen

我有一个用于搜索客户名称的编辑文本。它是一个多行 编辑文本字段。我想让最终用户能够添加 一个编辑文本中有多个用户

因此,名中的最终用户类型从下拉列表中选择用户 向下并按enter键添加新用户。我可以搜索 第一个用户,但无法搜索下一个用户

以下是我正在使用的代码:-

public TextWatcher searchTextWatcher = new TextWatcher() {
    @Override
    public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {

    }

    @Override
    public void onTextChanged(CharSequence query, int start, int before, int count) {
        mRecyclerView.setVisibility(View.VISIBLE);
        query = query.toString().toLowerCase();

        final List<String> filteredList = new ArrayList<>();

        for (int i = 0; i < list.size(); i++) {

            String text = list.get(i).toLowerCase();
            if (query.length()>0 && query.subSequence(query.length()-1, query.length()).toString().equalsIgnoreCase("\n"))
            {
                String multiLines = query.toString();
                String[] names;
                String delimiter ="\n";

                names = multiLines.split(delimiter);
                ArrayList guest_info = new ArrayList(Arrays.asList(names));

                ListIterator<String> it = guest_info.listIterator();
                while (it.hasNext())
                {

                    String guest = it.next();
                    Log.d("Guest ", guest);
                    if (text.toLowerCase().contains(guest))
                    {
                        filteredList.add(list.get(i));
                    }
                }




            }else
            if(text.contains(query))
            {
                filteredList.add(list.get(i));
            }
        }
        mRecyclerView.setLayoutManager(new LinearLayoutManager(BookingActivity.this));
        guestAdapter = new GuestAdapter(filteredList, getApplicationContext(),BookingActivity.this);
        mRecyclerView.setAdapter(guestAdapter);
        guestAdapter.notifyDataSetChanged();  // data set changed

    }

    @Override
    public void afterTextChanged(Editable editable) {
        String name = editable.toString();
        if (name.equals(""))
        {
            mRecyclerView.setVisibility(View.GONE);
        }

    }
};
public TextWatcher searchTextWatcher=new TextWatcher(){
@凌驾
更改前的公共无效(CharSequence CharSequence,int i,int i1,int i2){
}
@凌驾
public void onTextChanged(CharSequence查询、int start、int before、int count){
mRecyclerView.setVisibility(View.VISIBLE);
query=query.toString().toLowerCase();
final List filteredList=new ArrayList();
对于(int i=0;i0&&query.subSequence(query.length()-1,query.length()).toString().equalsIgnoreCase(“\n”))
{
String multiline=query.toString();
字符串[]名称;
字符串分隔符=“\n”;
名称=多行。拆分(分隔符);
ArrayList guest_info=新的ArrayList(Arrays.asList(names));
ListIterator it=guest_info.ListIterator();
while(it.hasNext())
{
String guest=it.next();
日志d(“来宾”,来宾);
if(text.toLowerCase().contains(guest))
{
filteredList.add(list.get(i));
}
}
}否则
if(text.contains(查询))
{
filteredList.add(list.get(i));
}
}
mRecyclerView.setLayoutManager(新的LinearLayoutManager(BookingActivity.this));
guestAdapter=new guestAdapter(filteredList,getApplicationContext(),BookingActivity.this);
mRecyclerView.setAdapter(guestAdapter);
guestAdapter.notifyDataSetChanged();//数据集已更改
}
@凌驾
public void PostTextChanged(可编辑){
字符串名称=可编辑的.toString();
if(name.equals(“”)
{
mRecyclerView.setVisibility(View.GONE);
}
}
};
我是编程新手,所以任何帮助或建议都非常感谢。谢谢