我有一个包含12行的listView。点击后的每一行都进入一个新活动,而不是12个活动,而是一个名为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);
}
});
答案 0 :(得分:0)
当你在edittext中输入B时,你的列表视图数据不会改变,只是视图(你看到的东西)会发生变化。如果您希望列表视图具有数据发布过滤器,请在listview适配器(MyAdapter)上调用notifydatasetChanged。基本上,当您在edittext中输入文本时会发生的事情是列表视图显示已过滤的选项,但列表视图保持不变。