0

所以我有一个从在线服务器下载到应用程序中的数据表,我有一个搜索按钮,点击它会弹出一个 AlertDialog,我希望用户在其中输入搜索文本,它看起来像这样:

public void buscar() {
    final EditText myView = new EditText(getApplicationContext());
    myView.setHint("Introduce texto aqui");
    AlertDialog.Builder alt_bld = new AlertDialog.Builder(this);
    alt_bld.setView(myView);
    alt_bld.setMessage("Introduce el texto o nombre del medio que deseas buscar:")

            .setCancelable(false)
            .setPositiveButton("Listo", new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int id) {

                }
            })
            .setNegativeButton("Cancelar", new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int id) {
                    dialog.cancel();
                }
            });

    TextWatcher filterTextWatcher = new TextWatcher() { 
        public void beforeTextChanged(CharSequence s, int start, int count,int after)
        {
        }
        public void onTextChanged(CharSequence s,int start, int before,int count)   
        {  
        }

        @Override
        public void afterTextChanged(Editable arg0) 
        {  
        }
    };
    buscartext = myView.getText();
    myView.addTextChangedListener(filterTextWatcher);
    AlertDialog alert = alt_bld.create();
    alert.setTitle("Buscar");
    alert.setIcon(R.drawable.searcha);
    alert.show();
}

它通过显示警报对话框并询问搜索文本来工作,但显然我现在不知道它是如何工作的,我在 onTextChanged 和 afterTextChanged 中尝试过这个:

for(webResult currentItem: arrayOfWebData)
    {
        //Check if the Medio property of the current item matches the search
        if(currentItem.Medio.equals(s))
        { 
            FilteredArrayOfWebItems.add(currentItem);
        }
     } 
            // here call my list adapter to display items

webResult 是来自互联网的表格,aFilteredArrayOfWebItems 是搜索结果的列表,但它不起作用。我知道 currentItem.Medio.equals(s) 只检查我的表的一列,我需要搜索超过一列,因为 .equal 我需要在多于一列的情况下进行搜索searchtext%) 搜索?并使用这个 textWatcher 还是我应该使用另一种方式在我的表中搜索?

4

0 回答 0