【问题标题】:Searching Listview with onClick view showing wrong使用 onClick 视图搜索 Listview 显示错误
【发布时间】:2018-04-03 05:08:09
【问题描述】:

任何人都可以帮助我如何修复列表视图搜索视图的错误结果。例如,我有来自列表视图的数据 (1,2,3,4,5) 当我从 searchview 搜索数据 2 并单击它时,总是显示它的数据 1,当我没有从 searchview 搜索数据时,结果如果为真,我点击数据 1 显示 1、2 显示 2

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);
    listView = (ListView) findViewById(R.id.listview);

    MaterialSearchBar searchBar = (MaterialSearchBar) findViewById(R.id.searchBar);
    searchBar.setHint("Search..");
    searchBar.setSpeechMode(true);
    final String[] values= new String[]{"cemento","muro","puerta"};
    final ArrayAdapter<String> adapter  = new ArrayAdapter<String>(this,
            android.R.layout.activity_list_item,android.R.id.text1,values);
    listView.setAdapter(adapter);
    listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> adapterView, View view,
                                int position, long id) {
            if(position==0){
                Intent myintent = new Intent(view.getContext(),cemento.class);
                startActivityForResult(myintent,0);
            }
            if(position==1){
                Intent myintent = new Intent(view.getContext(),muro.class);
                startActivityForResult(myintent,1);
            }
            if(position==2){
                Intent myintent = new Intent(view.getContext(),puerta.class);
                startActivityForResult(myintent,2);
            }
        }
    });



    searchBar.addTextChangeListener(new TextWatcher() {
        @Override
        public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {

        }

        @Override
        public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {

            adapter.getFilter().filter(charSequence);
        }

        @Override
        public void afterTextChanged(Editable editable) {

        }
    });


}}

【问题讨论】:

    标签: android list listview search


    【解决方案1】:

    过滤后,您的点击侦听器的位置不能与您在if 语句中的位置相同。

    可能的解决方案:使用您的数据集获取点击项目的位置,并将其内容与您的值进行比较。

    【讨论】:

      猜你喜欢
      • 2020-11-15
      • 2019-04-22
      • 2020-06-01
      • 2021-09-24
      • 2019-11-03
      • 1970-01-01
      • 2022-11-15
      • 2011-08-30
      • 1970-01-01
      相关资源
      最近更新 更多