gpt4 book ai didi

android - 启用 setTextFilterEnabled 时如何在 ListView 中获得正确的位置?

转载 作者:行者123 更新时间:2023-11-30 01:24:03 25 4
gpt4 key购买 nike

<分区>

当我点击其中的一项时,我试图在 ListView 中获得正确的位置。我启用了 setTextFilterEnabled。这是我的代码

@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);

}
});


.....

这是我的 ArrayList 获取文件

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;
}

这是使用过滤的地方

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
}

};

在我的 ListView onClickListener 中,它总是给我错误的位置和错误的文件路径。

请帮忙。谢谢。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com