Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/365.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 添加搜索列表视图的功能_Java_Android_Listview_Arraylist - Fatal编程技术网

Java 添加搜索列表视图的功能

Java 添加搜索列表视图的功能,java,android,listview,arraylist,Java,Android,Listview,Arraylist,我有一个很长的listview,所以我尝试添加一个搜索栏,这样我就不必在listview中滚动来找到我想要的内容。它似乎过滤掉了它想要的,任何关于我做错了什么的线索 清单如下: public class ExList { private List<Example> listExample = new ArrayList<Example>(); public void populateThingsList(){ listExample.add(new E

我有一个很长的listview,所以我尝试添加一个搜索栏,这样我就不必在listview中滚动来找到我想要的内容。它似乎过滤掉了它想要的,任何关于我做错了什么的线索

清单如下:

public class ExList {

private List<Example> listExample = new ArrayList<Example>();

public void populateThingsList(){
        listExample.add(new Example("asdf name", 1, "Example detail 1", "Example detail 2", R.drawable.1_icon, "Example detail 3"));
        listExample.add(new Example("ghkj name", 2, "Example detail 1", "Example detail 2", R.drawable.2_icon, "Example detail 3"));
        listExample.add(new Example("astg name", 3, "Example detail 1", "Example detail 2", R.drawable.3_icon, "Example detail 3"));
        listExample.add(new Example("ghky name", 4, "Example detail 1", "Example detail 2", R.drawable.4_icon, "Example detail 3"));
        listExample.add(new Example("ghee name", 5, "Example detail 1", "Example detail 2", R.drawable.5_icon, "Example detail 3"));
        listExample.add(new Example("asre name", 6, "Example detail 1", "Example detail 2", R.drawable.6_icon, "Example detail 3"));
        listExample.add(new Example("yuoi name6", 7, "Example detail 1", "Example detail 2", R.drawable.7_icon, "Example detail 3"));
        listExample.add(new Example("oiuy name", 8, "Example detail 1", "Example detail 2", R.drawable.8_icon, "Example detail 3"));
        listExample.add(new Example("fdsa name", 9, "Example detail 1", "Example detail 2", R.drawable.9_icon, "Example detail 3"));
        listExample.add(new Example("lkjh name", 10, "Example detail 1", "Example detail 2", R.drawable.10_icon, "Example detail 3"));
}
我的arrayadapter类和populatelistview方法

private void populateListView() {
        ArrayAdapter<Example> adapter = new MyListAdapter();
        ListView list = (ListView) findViewById(R.id.exampleListView);
        list.setAdapter(adapter);
    }

private class MyListAdapter extends ArrayAdapter<Example> {
        public MyListAdapter() {
            super(MainActivity.this, R.layout.item_view, listExample);
        }

        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            View itemView = convertView;
            if (itemView == null) {
                itemView = getLayoutInflater().inflate(R.layout.item_view, parent, false);
            }
            Example currentExample = listExample.get(position);

            ImageView imageView = (ImageView)itemView.findViewById(R.id.item_image);
            imageView.setImageResource(currentExample.getIconId());

            TextView detailThreeText = (TextView) itemView.findViewById(R.id.item_txtDThree);
            detailThreeText.setText(currentExample.getDThree());

            TextView detailTwoText = (TextView) itemView.findViewById(R.id.item_txtDTwo);
            detailTwoText.setText(currentExample.getDTwo());

            TextView detailOneText = (TextView) itemView.findViewById(R.id.item_txtDOne);
            detailOneText.setText(currentExample.getDOne());

            TextView nameText = (TextView) itemView.findViewById(R.id.item_txtName);
            nameText.setText(currentExample.getName());



            return itemView;
        }
private void populateListView(){
ArrayAdapter=新的MyListAdapter();
ListView列表=(ListView)findViewById(R.id.exampleListView);
list.setAdapter(适配器);
}
私有类MyListAdapter扩展了ArrayAdapter{
公共MyListAdapter(){
super(MainActivity.this、R.layout.item_视图、listExample);
}
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
视图项视图=转换视图;
如果(itemView==null){
itemView=GetLayoutFlater()。充气(R.layout.item_视图,父视图,false);
}
示例currentExample=listExample.get(位置);
ImageView ImageView=(ImageView)itemView.findViewById(R.id.item_image);
setImageResource(currentExample.getIconId());
TextView detailThreeText=(TextView)itemView.findViewById(R.id.item\u txtDThree);
detailThreeText.setText(currentExample.getDThree());
TextView detailTwoText=(TextView)itemView.findViewById(R.id.item_txtDTwo);
detailTwoText.setText(currentExample.getDTwo());
TextView detailOneText=(TextView)itemView.findViewById(R.id.item\u txtDOne);
detailOneText.setText(currentExample.getDOne());
TextView name text=(TextView)itemView.findViewById(R.id.item\u txtName);
nameText.setText(currentExample.getName());
返回项目视图;
}

说真的,你做错了什么。找出错误的最快方法是调试应用程序,用断点逐一检查。在每个断点处,检查重要值的值。在某些时候,你会发现你的假设是错误的。例如,你会发现比较操作不正确你说得对


相信我,这是解决问题的最快方法。我们这里的其他人可以花几个小时阅读你的代码,试图找到错误,但通过调试,你可能会在几分钟内发现问题。

说真的,你做错了什么。找出错误的最快方法是调试应用程序,用b来逐步检查它重新点。在每个断点处,检查重要值的值。在某些点上,您会发现您的假设不正确。例如,您会发现比较操作无法正常工作


相信我,这是解决问题的最快方法。我们这里的其他人可以花几个小时阅读你的代码,试图找到错误,但通过调试,你可能会在几分钟内发现问题。

说真的,你做错了什么。找出错误的最快方法是调试应用程序,用b来逐步检查它重新点。在每个断点处,检查重要值的值。在某些点上,您会发现您的假设不正确。例如,您会发现比较操作无法正常工作


相信我,这是解决问题的最快方法。我们这里的其他人可以花几个小时阅读你的代码,试图找到错误,但通过调试,你可能会在几分钟内发现问题。

说真的,你做错了什么。找出错误的最快方法是调试应用程序,用b来逐步检查它重新点。在每个断点处,检查重要值的值。在某些点上,您会发现您的假设不正确。例如,您会发现比较操作无法正常工作


相信我,这是解决问题的最快方法。我们这里的其他人可以花几个小时阅读您的代码,试图找到错误,但通过调试,您可能会在几分钟内找到问题。

我尝试在这里编写一些通用代码,修改它并让我知道。不要使用单独的函数进行比较,请在
onTextChan中进行ged

searchText.addTextChangedListener(new TextWatcher() {

                @Override
                public void onTextChanged(CharSequence s, int start, int before,
                        int count) {
                    // TODO Auto-generated method stub

                    String searchString = searchText.getText().toString();
                    int textLength = searchString.length();

                    ArrayList<String> searchList = new ArrayList<String>;
                    //searchList.clear(); 

                    for (int i = 0; i < listExample.size(); i++) {
                        Example model = listExample.get(i);
                        String Names = model.getName().toString();
                        if (textLength <= Names.length()) {
                            // compare the String in EditText with Names in the
                            // ArrayList
                            if (searchString.equalsIgnoreCase(Names.substring(
                                    0, textLength)))
                                searchList.add(listExample.get(i));
                        }
                    }

                    ArrayAdapter<Example> ad = new YOUR_ADAPTER(
                            YOUR_CLASS.this, searchList);
                    YOUR_LISTVIEW.setAdapter(ad);
                }

                @Override
                public void beforeTextChanged(CharSequence s, int start, int count,
                        int after) {
                    // TODO Auto-generated method stub

                }

                @Override
                public void afterTextChanged(Editable s) {
                    // TODO Auto-generated method stub

                }
            });
searchText.addTextChangedListener(新的TextWatcher(){
@凌驾
public void onTextChanged(字符序列,int start,int before,
整数计数){
//TODO自动生成的方法存根
字符串searchString=searchText.getText().toString();
int textLength=searchString.length();
ArrayList searchList=新的ArrayList;
//searchList.clear();
对于(int i=0;i如果(textLength我试图在这里编写一些通用代码,请修改它并让我知道。不要使用单独的函数进行比较,请在
onTextChanged

searchText.addTextChangedListener(new TextWatcher() {

                @Override
                public void onTextChanged(CharSequence s, int start, int before,
                        int count) {
                    // TODO Auto-generated method stub

                    String searchString = searchText.getText().toString();
                    int textLength = searchString.length();

                    ArrayList<String> searchList = new ArrayList<String>;
                    //searchList.clear(); 

                    for (int i = 0; i < listExample.size(); i++) {
                        Example model = listExample.get(i);
                        String Names = model.getName().toString();
                        if (textLength <= Names.length()) {
                            // compare the String in EditText with Names in the
                            // ArrayList
                            if (searchString.equalsIgnoreCase(Names.substring(
                                    0, textLength)))
                                searchList.add(listExample.get(i));
                        }
                    }

                    ArrayAdapter<Example> ad = new YOUR_ADAPTER(
                            YOUR_CLASS.this, searchList);
                    YOUR_LISTVIEW.setAdapter(ad);
                }

                @Override
                public void beforeTextChanged(CharSequence s, int start, int count,
                        int after) {
                    // TODO Auto-generated method stub

                }

                @Override
                public void afterTextChanged(Editable s) {
                    // TODO Auto-generated method stub

                }
            });
searchText.addTextChangedListener(新的TextWatcher(){
@凌驾
public void onTextChanged(字符序列,int start,int before,
整数计数){
//TODO自动生成的方法存根
字符串searchString=searchText.getText().toString();
int textLength=searchString.length();
ArrayList searchList=新的ArrayList;
//searchList.clear();
对于(int i=0;i如果(textLength我试图在这里编写一些通用代码,请修改它并让我知道。不要使用分隔符
searchText.addTextChangedListener(new TextWatcher() {

                @Override
                public void onTextChanged(CharSequence s, int start, int before,
                        int count) {
                    // TODO Auto-generated method stub

                    String searchString = searchText.getText().toString();
                    int textLength = searchString.length();

                    ArrayList<String> searchList = new ArrayList<String>;
                    //searchList.clear(); 

                    for (int i = 0; i < listExample.size(); i++) {
                        Example model = listExample.get(i);
                        String Names = model.getName().toString();
                        if (textLength <= Names.length()) {
                            // compare the String in EditText with Names in the
                            // ArrayList
                            if (searchString.equalsIgnoreCase(Names.substring(
                                    0, textLength)))
                                searchList.add(listExample.get(i));
                        }
                    }

                    ArrayAdapter<Example> ad = new YOUR_ADAPTER(
                            YOUR_CLASS.this, searchList);
                    YOUR_LISTVIEW.setAdapter(ad);
                }

                @Override
                public void beforeTextChanged(CharSequence s, int start, int count,
                        int after) {
                    // TODO Auto-generated method stub

                }

                @Override
                public void afterTextChanged(Editable s) {
                    // TODO Auto-generated method stub

                }
            });