Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/182.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 如何从sqlite字段筛选listview?_Android_Arrays_Sqlite_Listview_Filtering - Fatal编程技术网

Android 如何从sqlite字段筛选listview?

Android 如何从sqlite字段筛选listview?,android,arrays,sqlite,listview,filtering,Android,Arrays,Sqlite,Listview,Filtering,我想让筛选我的listview的工具依赖于我的数据库。我可以从字符串[]数组中筛选数据,但当我在数据库中的记录上尝试此操作时。我发现此错误适配器无法解析为变量 在这一行 adapter = new ArrayAdapter<product>(ViewData.this, R.layout.item_list, R.id.edtnama, brand); 这是一个完整的代码 public void onCreate(Bundle savedInstanceState) { s

我想让筛选我的listview的工具依赖于我的数据库。我可以从字符串[]数组中筛选数据,但当我在数据库中的记录上尝试此操作时。我发现此错误
适配器无法解析为变量

在这一行

adapter = new ArrayAdapter<product>(ViewData.this, R.layout.item_list, R.id.edtnama, brand);
这是一个完整的代码

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.viewdata);

    dataSource = new DBDataSource(this);
    dataSource.open();
    brand = dataSource.getAllproduct();

    adapter = new ArrayAdapter<product>(ViewData.this, R.layout.item_list, R.id.edtnama, brand);
    ListView.setAdapter(adapter);
    edtsearch = (EditText) findViewById(R.id.edtsearch);

    edtsearch.addTextChangedListener(new TextWatcher(){
        @Override
        public void onTextChanged(CharSequence s, int start, int before, int count){
            ViewData.this.adapter.getFilter().filter(s);
        }

        @Override
        public void beforeTextChanged(CharSequence s, int start, int count, int after){}

        @Override
        public void afterTextChanged(Editable s){}  
    });
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.viewdata);
dataSource=新的DBDataSource(此);
dataSource.open();
brand=dataSource.getAllproduct();
适配器=新阵列适配器(ViewData.this,R.layout.item_list,R.id.edtnama,品牌);
setAdapter(适配器);
edtsearch=(EditText)findViewById(R.id.edtsearch);
edtsearch.addTextChangedListener(新的TextWatcher(){
@凌驾
public void onTextChanged(字符序列、int start、int before、int count){
ViewData.this.adapter.getFilter().filter;
}
@凌驾
public void beforeTextChanged(字符序列s、int start、int count、int after){}
@凌驾
公共无效后文本更改(可编辑的s){}
});

您使用的是自定义适配器吗?是否将适配器变量设为全局?否,我没有使用自定义适配器ArrayAdapter适配器;像这样,我尝试插入专用ArrayAdapter适配器;我遇到另一个错误“无法从ArrayList转换为ArrayList”
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.viewdata);

    dataSource = new DBDataSource(this);
    dataSource.open();
    brand = dataSource.getAllproduct();

    adapter = new ArrayAdapter<product>(ViewData.this, R.layout.item_list, R.id.edtnama, brand);
    ListView.setAdapter(adapter);
    edtsearch = (EditText) findViewById(R.id.edtsearch);

    edtsearch.addTextChangedListener(new TextWatcher(){
        @Override
        public void onTextChanged(CharSequence s, int start, int before, int count){
            ViewData.this.adapter.getFilter().filter(s);
        }

        @Override
        public void beforeTextChanged(CharSequence s, int start, int count, int after){}

        @Override
        public void afterTextChanged(Editable s){}  
    });