单击时,列表视图中的搜索过滤器位置错误



大家好,我正在开发一个关于导入/导出和更新csv的应用程序,我有这个编辑文本过滤器。

当我选择它时,搜索项的 id 变为 1。

下面是我的代码:

lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id)
            {

                TextView cat;
                TextView code;
                TextView desc;
                TextView unit;
                TextView quan;

                Intent intent = new Intent(getApplicationContext(), Main2Activity.class);
                cat = (TextView) view.findViewById(R.id.txtproductcompany);
                String gory = cat.getText().toString();
                intent.putExtra(ID_EXTRA, gory);
                code = (TextView) view.findViewById(R.id.txtproductname);
                String deco = code.getText().toString();
                intent.putExtra(ID_EXTRA2, deco);
                desc = (TextView) view.findViewById(R.id.txtproductprice);
                String csed = desc.getText().toString();
                intent.putExtra(ID_EXTRA3, csed);
                unit = (TextView) view.findViewById(R.id.txtunit);
                String noti = unit.getText().toString();
                intent.putExtra(ID_EXTRA4, noti);
                quan = (TextView) view.findViewById(R.id.txtquan);
                String quanti = quan.getText().toString();
                intent.putExtra(ID_EXTRA5, quanti);
                intent.putExtra(ID_EXTRA1 , String.valueOf(id + 1));
                startActivity(intent);

                lv.setChoiceMode(AbsListView.CHOICE_MODE_SINGLE);
                lv.setSelector(android.R.color.holo_blue_bright);

            }
        });

用于筛选搜索项目的代码:

search.addTextChangedListener(new TextWatcher() {
            @Override
            public void onTextChanged(CharSequence cs, int arg1, int arg2, int arg3) {
                // When user changed the Text
                ((SimpleAdapter)MainActivity.this.adapter).getFilter().filter(cs);
            }
            @Override
            public void beforeTextChanged(CharSequence arg0, int arg1, int arg2,
                                          int arg3) {
                // TODO Auto-generated method stub
            }
            @Override
            public void afterTextChanged(Editable arg0) {
                // TODO Auto-generated method stub
            }
        });
您使用

的 id 是 单击的项目的行 ID。当您搜索某些内容时,如果您找到一条匹配的记录,那么 id 将为 0,您将向它添加 1,因此您将获得 1

最新更新