android - 显示文件的 ListFragment 问题
问题描述
我有我在标题中所说的问题。我只想显示手机内部存储中的 txt 文件以在点击时处理它。我的问题是它无法识别 ListView。我尝试了许多不同的解决方案,但没有奏效。有人知道吗?下面是课堂上的代码。谢谢
public class Tab3 extends ListFragment {
private ListView listView;
private String fileNames[];
View mView;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
listView = getActivity().findViewById(R.id.listView);
ArrayList<File> files = readFiles(Environment.getExternalStorageDirectory());
fileNames = new String[files.size()];
for (int i = 0; i < files.size(); ++i) {
fileNames[i] = files.get(i).getName().toString().replace(".txt", "");
}
ListAdapter listAdapter = new ArrayAdapter<String>(getActivity(),
android.R.layout.simple_list_item_1, fileNames);
setListAdapter(listAdapter);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
mView = inflater.inflate(R.layout.fragment_tab3, container, false);
return mView;
}
private ArrayList<File> readFiles(File root) {
ArrayList<File> arrayList = new ArrayList<File>();
File files[] = root.listFiles();
for (File file : files) {
if (file.isDirectory()) {
arrayList.addAll(readFiles(file));
} else {
if (file.getName().endsWith(".txt")) {
arrayList.add(file);
}
}
}
return arrayList;
}
}
更新
public SectionsPagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
Fragment fragment=null;
switch (position){
case 0:
Tab1Values tab1=new Tab1Values();
return tab1;
case 1:
Tab2Map tab2=new Tab2Map();
return tab2;
case 2:
Tab3 tab3=new Tab3();
return tab3;
}
return fragment;
}
@Override
public int getCount() {
// Show 3 total pages.
return 3;
}
}
解决方案
我认为应该是listView.setAdapter(listAdapter);
推荐阅读
- html - 在滑块中拟合视频(Bootstrap 4.0)
- linux - 对现有或已安装的根文件系统进行加密
- python - Python递归打印嵌套哈希
- scala - 了解 Stream Scala 交错转换行为
- php - 当我添加另一个 php 站点时,该站点被重定向到另一个 php 站点,我没有编写重定向 .conf 文件。发生了什么事?
- linux - “权限被拒绝”时如何显示图像
- spring - java.lang.IllegalStateException:当前没有用户登录
- android - 使用 gradle 构建时将环境变量传递给 cmake
- appium - 如何使用 appium 将所有 recyclerView 项放入 ArrayList
- sql - hadoop hive 使用 row_number()