У меня есть проблема, о которой я сказал в заголовке. Я хочу отображать только текстовые файлы из внутреннего хранилища моего телефона для обработки его по щелчку. Моя проблема в том, что он не распознает 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;
}
}