Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/190.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
如何在Android中通过ListView搜索数据_Android_Android Layout_Search_Android Emulator_Android Widget - Fatal编程技术网

如何在Android中通过ListView搜索数据

如何在Android中通过ListView搜索数据,android,android-layout,search,android-emulator,android-widget,Android,Android Layout,Search,Android Emulator,Android Widget,我试图通过ListView来自Web设备的数据来搜索数据 描述:如果我在搜索editview[searchText]中输入[abc],并且如果我单击serachbutton(buttonSearch),它必须在列表视图(列表视图) 例:abc、ABCD、abcderg等。这样 这个话题对我来说是新的 这是我的密码。请帮我做这件事 我试过了,但是我不知道怎么做 worklistview.java ArrayList<Patient> patientListArray; l

我试图通过
ListView
来自Web设备的数据来搜索数据

描述:如果我在搜索
editview[searchText]
中输入[abc],并且如果我单击
serachbutton(buttonSearch)
,它必须在
列表视图(列表视图)

例:abc、ABCD、abcderg等。这样

这个话题对我来说是新的

这是我的密码。请帮我做这件事

我试过了,但是我不知道怎么做

worklistview.java

    ArrayList<Patient> patientListArray;


 listView = (ListView) findViewById(R.id.workListview);
    objectAdapter = new WorkListAdapter(this, patientListArray);
    listView.setAdapter(objectAdapter);     
    listView.setTextFilterEnabled(true);

    searchText = (EditText) findViewById(R.id.searchView);
    searchText.addTextChangedListener(new TextWatcher() {
        public void afterTextChanged(Editable s) {
        }
        public void beforeTextChanged(CharSequence s, int start, int count, int after) {
        }
        public void onTextChanged(CharSequence s, int start, int before, int count) {
             dataAdapter.getFilter().filter(s.toString());


        }
    }); 

WorkListAdapter.java

public Filter getFilter() {

    Filter myFilter = new Filter() {



        @Override
        protected void publishResults(CharSequence constraint, FilterResults results) {

            if (!patientListArray.isEmpty()){
                clear();
            }

            for (int i = 0; i < patientListArray.size(); i++) {
                if(patientListArray.get(i).getName().toLowerCase().startsWith(constraint.toString().toLowerCase())){
                    add(patientListArray.get(i));
                }
            }

            notifyDataSetChanged();
        }

        private void add(Patient patient) {


        }

        private void clear() {


        }

        @Override
        protected FilterResults performFiltering(CharSequence constraint) {

            return null;
        }
    };  

    return myFilter;
}
arraylistpatientlistarray;
listView=(listView)findViewById(R.id.workListview);
objectAdapter=新的WorkListAdapter(这是patientListArray);
setAdapter(objectAdapter);
setTextFilterEnabled(true);
searchText=(EditText)findViewById(R.id.searchView);
searchText.addTextChangedListener(新的TextWatcher(){
公共无效后文本已更改(可编辑){
}
更改前文本之前的公共void(字符序列s、int start、int count、int after){
}
public void onTextChanged(字符序列、int start、int before、int count){
dataAdapter.getFilter().filter(s.toString());
}
}); 
WorkListAdapter.java
公共过滤器getFilter(){
过滤器myFilter=新过滤器(){
@凌驾
受保护的void publishResults(CharSequence约束、FilterResults结果){
如果(!patientListArray.isEmpty()){
清除();
}
for(int i=0;i
从图形上看,您需要一个带有EditText(TextWatcher)和listview的布局。然后,listview的适配器将始终使用筛选器(dataAdapter.getFilter().filter(s.toString());)侦听TextWatcher上的更改

更多细节


祝你好运。

什么是
quickAction.show(v)
@spk这是一个对话框。。当我点击按钮时,会出现对话框。