Я пробовал другие решения. Но проблема для меня в другом. Я реализовал SearchView с ListView в моем приложении. Когда я что-то ищу, открывается первый элемент массива , при нажатии элемента . Но мне нужно открыть тот же элемент, который указан в поиске. Результат поиска хорошо фильтруется, но элемент onClick дает другой элемент. Пожалуйста, обратите внимание, что мой вопрос отличается и не дубликат. Мой код ниже:
public class Searchpage extends AppCompatActivity {
SearchView searchView;
ListView listView;
ArrayAdapter<String> adapter;
String[] name = {
"General Science", "Social Science", "Maths", "English", "Politics", "IT"
};
String[] file= {
"science.pdf", "social.pdf", "maths.pdf", "english.pdf", "politics.pdf", it.pdf"
};
int[] pagenum = {
0,0,0,0,0,0
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_searchpage);
searchView = findViewById(R.id.srch);
listView = findViewById(R.id.searchlist);
adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, name);
listView.setAdapter(adapter);
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String query) {
adapter.getFilter().filter(query);
return false;
}
@Override
public boolean onQueryTextChange(String newText) {
adapter.getFilter().filter(newText);
return false;
}
});
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Intent ij = new Intent(getApplicationContext(), PdfView.class);
ij.putExtra("furl", "fl/" + pagenum[position]);
ij.putExtra("pagenm", pagenum[position]);
startActivity(ij);
}
});
}
}