如何使listview以项目为基础而不是以位置为基础,特别是在筛选之后?
我有一个12行的列表视图。单击后的每一行都会转到一个新活动,不是12个活动,而是1个名为Content.java的活动通过编码更改内容。但在应用搜索过滤器之后,例如,如果我在列表中有A、B和C,当我在editText中输入B时,我实际上得到了B作为保留行,但单击后,它将转到活动。 问题是:我如何使我的侦听器基于意图项而不是基于位置? 这是我的密码:如何使listview以项目为基础而不是以位置为基础,特别是在筛选之后?,listview,search,android-intent,filter,onitemclick,Listview,Search,Android Intent,Filter,Onitemclick,我有一个12行的列表视图。单击后的每一行都会转到一个新活动,不是12个活动,而是1个名为Content.java的活动通过编码更改内容。但在应用搜索过滤器之后,例如,如果我在列表中有A、B和C,当我在editText中输入B时,我实际上得到了B作为保留行,但单击后,它将转到活动。 问题是:我如何使我的侦听器基于意图项而不是基于位置? 这是我的密码: Subjects_total_number = global.Subjects_total_number; Subjects
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);
}
});
当您在编辑文本中输入B时,listview数据不会更改,而只会更改视图—您看到的内容会更改。如果希望listview具有data post筛选器,请在listview adapterMyAdapter上调用notifydatasetChanged。基本上,当您在编辑文本中输入文本时,listview会显示过滤选项,但listview保持不变。谢谢您的评论。但是我可以要求您根据您的评论更改我的代码以查看示例吗?提前谢谢。我需要看看你的代码,看看你在哪里根据你的输入过滤。只有这样,我才能用我刚才提到的方法帮助你