【问题标题】:How making the listview onItemClick, Item Based instead of Position Based, specially after filter?如何使列表视图 onItemClick,基于项目而不是基于位置,特别是在过滤后?
【发布时间】:2014-08-19 05:02:55
【问题描述】:

我有一个 12 行的 listView。单击后的每一行都转到一个新活动,不是 12 个活动,而是 1 个名为 Content.java 的活动(通过编码更改内容)。但是在应用搜索过滤器之后,例如,如果我在列表中有 A、B 和 C,当我在 editText 中输入 B 时,我实际上将 B 作为剩余的行,但点击后它会转到 A 活动。 问题是:如何使我的 OnItemClickListener 意图基于项目而不是基于位置? 这是我的代码:

Subjects_total_number = global.Subjects_total_number;
            Subjects = new String[Subjects_total_number];
            for(int x = 1; x < Subjects_total_number+1; x = x+1) {
                    String this_subject = "subject_" + String.valueOf(x);
        int resID = getResources().getIdentifier(this_subject, "string", getPackageName());
                    Subjects[x-1] = getResources().getString(resID);
    }

            setListAdapter(new MyAdapter(this,
                            android.R.layout.simple_list_item_1, R.id.textView1,
                            Subjects));    

               // set the OnItemClickListener

            lv = getListView();
            lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> parent, final View view,
            int position, long id) {                       
                    Intent i = new Intent(getApplicationContext(), Show_Subjects.class);
                    String Subject_number = String.valueOf(position+1);
                    i.putExtra("subject_number", Subject_number);
                    startActivity(i);
                    overridePendingTransition(R.anim.slide_left_to_right_forw, R.anim.slide_right_to_left_forw);
        }

      });

【问题讨论】:

    标签: listview search android-intent filter onitemclick


    【解决方案1】:

    当您在编辑文本中输入 B 时,您的列表视图数据不会改变,只是视图(您所看到的东西)会发生变化。如果您希望您的列表视图具有数据后过滤器,请在您的列表视图适配器(MyAdapter)上调用 notifydatasetChanged。本质上,当您在 edittext 中输入文本时,列表视图会显示已过滤的选项,但列表视图保持不变。

    【讨论】:

    • 感谢您的评论。但是我可以要求您根据您的评论更改我的代码以查看示例吗?提前致谢。
    • 我需要查看您的代码,了解您根据输入的过滤位置。只有这样我才能用我提到的方式帮助你
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-28
    • 2013-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-15
    相关资源
    最近更新 更多