Как отсортировать по алфавиту файлы моего списка? Я использую пользовательский адаптер, уже пробовал несколько вещей, но ничего не работает, я читал, и я думаю, что я должен сделать список адаптеров? Если я прав, может кто-нибудь помочь мне интегрировать адаптер списка в мой код. Представление списка с использованием специального адаптера и модели данных.
MainActivity.java
ArrayList<DataModel> dataModels;
ListView list2;
private static CustomAdapter adapter;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
RelativeLayout rootView = (RelativeLayout) findViewById(id.relativeLayout1);
LayoutParams params = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
params.addRule(RelativeLayout.CENTER_HORIZONTAL);
params.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
rootView.setSystemUiVisibility(8);
final File carpeta = new File("/storage/emulated/0/Android/data/cc.openframeworks.androidMultiOFActivitiesExample/files/xml");
dataModels= new ArrayList<>();
listarFicherosPorCarpeta(carpeta);
ficheros = list.toArray(new String[list.size()]);
final List<String> list = new ArrayList<String>();
// dataModels.add(new DataModel("Apple Pie", "Android 1.0"));
for (int i = 0; i < ficheros.length; i++) {
dataModels.add(new DataModel(ficheros[i], fecha[i]));
}
adapter= new CustomAdapter(dataModels,getApplicationContext());
list2.setAdapter(adapter);
}
List<String> list = new ArrayList<String>();
public void listarFicherosPorCarpeta(final File carpeta) {
for (final File ficheroEntrada: carpeta.listFiles()) {
if (ficheroEntrada.isDirectory()) {
listarFicherosPorCarpeta(ficheroEntrada);
} else {
System.out.println(ficheroEntrada.getName());
list.add(ficheroEntrada.getName());
}
}
}
CustomAdapter.java
public class CustomAdapter extends ArrayAdapter<DataModel> {
private ArrayList<DataModel> dataSet;
Context mContext;
// View lookup cache
private static class ViewHolder {
TextView txtTitle;
TextView txtFecha;
}
public CustomAdapter(ArrayList<DataModel> data, Context context) {
super(context, R.layout.rowlayout, data);
this.dataSet = data;
this.mContext=context;
}
private int lastPosition = -1;
private String convertStringArrayToString(String[] stringArray) {
StringBuilder sb = new StringBuilder();
for (int i = 0; i < stringArray.length; i++) {
String item = stringArray[i];
sb.append(item).append("\n");
}
String result = sb.toString();
if (result.endsWith("\n")) {
result = result.substring(0, result.length() - 1);
}
return result;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// Get the data item for this position
DataModel dataModel = getItem(position);
// Check if an existing view is being reused, otherwise inflate the view
ViewHolder viewHolder; // view lookup cache stored in tag
final View result;
if (convertView == null) {
viewHolder = new ViewHolder();
LayoutInflater inflater = LayoutInflater.from(getContext());
convertView = inflater.inflate(R.layout.rowlayout, parent, false);
viewHolder.txtTitle = (TextView) convertView.findViewById(R.id.listtext);
viewHolder.txtFecha = (TextView) convertView.findViewById(R.id.fechatxt);
result=convertView;
convertView.setTag(viewHolder);
} else {
viewHolder = (ViewHolder) convertView.getTag();
result=convertView;
}
Animation animation = AnimationUtils.loadAnimation(mContext, (position > lastPosition) ? R.anim.up_from_bottom : R.anim.down_from_top);
result.startAnimation(animation);
lastPosition = position;
viewHolder.txtTitle.setTextColor(Color.parseColor("#015D99"));
viewHolder.txtTitle.setHeight(125);
viewHolder.txtTitle.setText(dataModel.getFicheros());
viewHolder.txtFecha.setText(dataModel.getFecha());
// Return the completed view to render on screen
return convertView;
}
}
DataModel.java
public class DataModel {
String ficheros;
String fecha;
public DataModel(String ficheros, String fecha) {
this.ficheros = ficheros;
this.fecha = fecha;
}
public String getFicheros() {
return ficheros;
}
public String getFecha() {
return fecha;
}
}
ошибка: незарегистрированное исключение ParseException;должен быть перехвачен или объявлен как выброшенный
org.gradle.api.internal.tasks.compile.CompilationFailedException: Компиляция не удалась;см. вывод ошибки компилятора для деталей. at> org.gradle.api.internal.tasks.compile.NormalizingJavaCompiler.delegateAndHandleErrors (NormalizingJavaCompiler.java:104)