Witam! Mam 2 pytania w sprawie androida. Są to wprawdzie 2 różne sprawy, ale mimo to nie widzę sensu zakładnia dwóch tematów, więc postaram się zmieścić wszystko w jednym.
1.Jak zmienić wygląd/kolor zaznaczonej na screenie ascreen.jpg części datepickera?
ascreen.jpg
2.Sortowanie ArrayList: Przy wyborze sortowania po dacie zakończenia/dodania, statusie i priorytecie działa poprawnie - sort_dd.jpg natomiast przy sortowaniu po nazwie dzieje się coś takiego, jak na screenie sort_n.jpg. Dlaczego?
sort_def.jpg Domyslny widok listy
sort_dd.jpg Sortowanie po dacie dodania
sort_n.jpg Sortowanie po nazwie
MainActivity.java
private void Sort(String param){
Toast t2 = Toast.makeText(MainActivity.this,"You selected : "+ param, Toast.LENGTH_LONG);
t2.show();
String t;
items2.clear();
switch(param) {
case "Nazwa":
Collections.sort(events, Zdarzenie.SortNazwa);
break;
case "Data dodania":
Collections.sort(events, Zdarzenie.SortDataDod);
break;
case "Data zakończenia":
Collections.sort(events, Zdarzenie.SortData);
break;
case "Priorytet":
Collections.sort(events, Zdarzenie.SortPriorytet);
break;
case "Status":
Collections.sort(events, Zdarzenie.SortStatus);
break;
}
for (int i = 1; i < events.size(); i++) {
Zdarzenie z = events.get(i);
if(param.equalsIgnoreCase("Nazwa")){
t = z.getNazwa() + " " + z.getGodzina() + " " + z.getData();
items2.add(t);
}
if(param.equalsIgnoreCase("Data dodania")){
t = z.getData_dodania() + " " + z.getGodzina_dodania() + " " + z.getNazwa();
items2.add(t);
}
if(param.equalsIgnoreCase("Data zakończenia")){
t = z.getData() + " " + z.getGodzina() + " " + z.getNazwa();
items2.add(t);
}
if(param.equalsIgnoreCase("Priorytet")){
t = z.getPriorytet() + " " + z.getNazwa();
items2.add(t);
}
if(param.equalsIgnoreCase("Status")){
if (z.isAktywny() == true) {
t = "Aktywny" + " " + z.getNazwa();
items2.add(t);
}
if (z.isAktywny() == false) {
t = "Nieaktywny" + " " + z.getNazwa();
items2.add(t);
}
}
}
itemsAdapter2 = new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_list_item_1, items2);
lvItems.setAdapter(itemsAdapter2);
}
Zdarzenie.java
package com.example.administrator.myapplication;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Comparator;
public class Zdarzenie implements Serializable {
public static Object Zdarzenie;
private String nazwa;
private String data;
private String godzina;
private String data_dodania;
private String godzina_dodania;
private boolean aktywny;
private String priorytet;
public String getNazwa() {
return nazwa;
}
public void setNazwa(String nazwa) {
this.nazwa = nazwa;
}
public String getData() {
return data;
}
public void setData(String data) {
this.data = data;
}
public String getGodzina() {
return godzina;
}
public void setGodzina(String godzina) {
this.godzina = godzina;
}
public String getData_dodania() {
return data_dodania;
}
public void setData_dodania(String data_dodania) {
this.data_dodania = data_dodania;
}
public String getGodzina_dodania() {
return godzina_dodania;
}
public void setGodzina_dodania(String godzina_dodania) {
this.godzina_dodania = godzina_dodania;
}
public boolean isAktywny() {
return aktywny;
}
public void setAktywny(boolean aktywny) {
this.aktywny = aktywny;
}
public String getPriorytet() {
return priorytet;
}
public void setPriorytet(String priorytet) {
this.priorytet = priorytet;
}
/*załącznik*/
public static Comparator<Zdarzenie> SortNazwa = new Comparator<Zdarzenie>() {
public int compare(Zdarzenie z1, Zdarzenie z2) {
String Nazwa1 = z1.getNazwa().toLowerCase();
String Nazwa2 = z2.getNazwa().toLowerCase();
//ascending order
return Nazwa1.compareTo(Nazwa2);
//descending order
//return StudentName2.compareTo(StudentName1);
}};
public static Comparator<Zdarzenie> SortPriorytet = new Comparator<Zdarzenie>() {
public int compare(Zdarzenie z1, Zdarzenie z2) {
String Priorytet1 = z1.getPriorytet().toUpperCase();
String Priorytet2 = z2.getPriorytet().toUpperCase();
//ascending order
return Priorytet2.compareTo(Priorytet1);
//descending order
//return StudentName2.compareTo(StudentName1);
}};
public static Comparator<Zdarzenie> SortData = new Comparator<Zdarzenie>() {
public int compare(Zdarzenie z1, Zdarzenie z2) {
String data1 = z1.getData();
String data2 = z2.getData();
String godzina1 = z1.getGodzina();
String godzina2 = z2.getGodzina();
String czas1 = data1 + " " + godzina1;
String czas2 = data2 + " " + godzina2;
//ascending order
return czas2.compareTo(czas1);
//descending order
//return StudentName2.compareTo(StudentName1);
}};
public static Comparator<Zdarzenie> SortStatus = new Comparator<Zdarzenie>() {
public int compare(Zdarzenie z1, Zdarzenie z2) {
Boolean Status1 = z1.isAktywny();
Boolean Status2 = z2.isAktywny();
//ascending order
return Status2.compareTo(Status1);
//descending order
//return StudentName2.compareTo(StudentName1);
}};
public static Comparator<Zdarzenie> SortDataDod = new Comparator<Zdarzenie>() {
public int compare(Zdarzenie z1, Zdarzenie z2) {
String data1 = z1.getData_dodania();
String data2 = z2.getData_dodania();
String godzina1 = z1.getGodzina_dodania();
String godzina2 = z2.getGodzina_dodania();
String czas1 = data1 + " " + godzina1;
String czas2 = data2 + " " + godzina2;
//ascending order
return czas2.compareTo(czas1);
//descending order
//return StudentName2.compareTo(StudentName1);
}};
}