Ich versuche, die richtige Position in der ListView zu erhalten, wenn ich ein Element darauf angeklickt habe. Ich aktiviere die setTextFilterEnabled. Hier ist mein CodeWie bekomme ich die richtige Position in der Listenansicht, wenn setTextFilterEnabled aktiviert ist?
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
.....
//get files
getfile(root);
adapter = (new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, mylist));
listView = (ListView) findViewById(R.id.view);
listView.setAdapter(adapter);
listView.setTextFilterEnabled(true);
.....
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
String pdfPath = Environment.getExternalStorageDirectory() + fileList.get(position).getName();
Intent intent = new Intent(MainActivity.this, NextActivity.class);
intent.putExtra("location_of_file", pdfPath);
startActivity(intent);
}
});
.....
Hier ist meine Arraylist die Dateien erhalten
public ArrayList<File> getfile(File dir) {
File listFile[] = dir.listFiles();
if (listFile != null && listFile.length > 0) {
for (int i = 0; i < listFile.length; i++) {
if (listFile[i].isDirectory()) {
fileList.add(listFile[i]);
getfile(listFile[i]);
} else {
if (listFile[i].getName().endsWith(".pdf"))
{
fileList.add(listFile[i]);
}
}
}
}
return fileList;
}
Hier wird verwendet, um die Filter
private TextWatcher filterTextWatcher = new TextWatcher() {
public void afterTextChanged(Editable s) {
}
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
}
public void onTextChanged(CharSequence s, int start, int before,
int count) {
adapter.getFilter().filter(s);
listView.setVisibility(View.INVISIBLE); //when input text is changed hide list
}
};
In meinem Listview OnClickListener es geben mir immer die falsche Position und habe den falschen Dateipfad gefunden.
Bitte helfen. Vielen Dank. Ersetzen
vielen Dank @MikeM. ! –
Kein Problem. Wenn dieser Beitrag Ihre Frage beantwortet, sollten Sie ihn als hilfreich markieren können, um Ihre Frage abzuschließen. Prost! –