Skocz do zawartości
Coderoid

Ustawienie koloru listy pobranego z bazy danych

    Rekomendowane odpowiedzi

    Coderoid

    Cześć,

    mój problem polega na tym że mam w bazie danych przechowywaną wartość koloru w postaci #FF0000.

    Pobieram sobie kolor do ArrayList.

    Oprócz pobierania koloru pobieram też wartości które wrzucam do ListView i chciałbym aby pojedynczy widok był koloru takiego jak jest w tabelce.

    Schemat tabeli

    ID Pole1 Pole2 Pole3 Kolor

    1 T1 A B #FF0000

    2 T2 C D #00FF00

    3 T3 E F #0000FF

    Do listy wczytuje Pole1,Pole2,Pole3 i chce żeby ta pozycja była koloru tak jak to wynika z rekordu.

    ArrayList<String> al = dbmy.dajWszystko();
    	ArrayList<String> kol = dbmy.dajKolor();
    	String kolor = kol.toString();
    
    ArrayAdapter<String> aa = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, al);
    	lv = (ListView)	findViewById(R.id.listView1);
    	lv.setAdapter(aa);
    

    W jaki sposób mogę uzupełnić kolory ?

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach
    Jazotu
    ArrayList<String> kol = dbmy.dajKolor();

    String kolor = kol.toString();

    nie rozumiem tego zapisu. Wynika z tego że metoda dajKolor() - wyciąga jednego stringa - to po co zapisujesz to do Listy?

    Z tego co zrozumiałem w jednym wierszu masz mieć 5 kolumn - musisz sobie napisać oddzielny layout dla takiego row'a. Później może zastanów się nad mapą, ArrayList<Klucz, wartość> gdzie w wartości podajesz kolor. wczytując taką tabele w adapterze ustawiasz odpowiedni kolor.

    Musisz stworzyć swój własny ArrayAdapter - w sensie customowy. Jednym słowem rozszerzyć tą klasę.

    Edytowane przez Jazotu

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach
    Coderoid

    Fakt, zapis bez sensu, wczytuje wszystkie możliwe kolory do listy żeby je potem zamienić na jednego wielkiego stringa... :facepalm:

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach
    Jazotu

    druga spraw, nie wiem jak u Ciebie z angielskim, ale fajnie jest pisać kod w tym języku. Staraj się używać pełnych nazw, nie skrótów, bo po pewnym czasie zapomnisz co one oznaczają, tj.

    ArrayList<String> al = dbmy.dajWszystko(); // podejrzewam że miało być all - z tym że i ta nazwa nic nie mówi, dalej co to jest dbmy - Ty o tym wiesz teraz, z naciskiem na teraz - za tydzień, dwa będziesz potrzebować do tego czasu żeby to wywnioskować - a ja, inny programista, musze analizować wszystko i zastanawiać się o co Ci tak na prawdę chodziło

    Skróty nazw zmiennych dopuszczalne są tylko dla zmiennych lokalnych, małego zasięgu, w krótkich metodach (metody same w sobie powinny być krótkie). Poza tym unikaj tego. Kod powinno się czytać jak powieść ;)

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach
    Coderoid

    Dzięki za radę, ja niestety programistą nie jestem, mój kod jest jaki jest, bardziej skupiam się nad funkcjonalnością i poznaniem języka.

    Angielski ok, dokumentację potrafię czytać, wiem że powinno się nazywać po angielsku, CamelCase itd :)

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach

    Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

    Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

    Zarejestruj nowe konto

    Załóż nowe konto. To bardzo proste!

    Zarejestruj się

    Zaloguj się

    Posiadasz już konto? Zaloguj się poniżej.

    Zaloguj się

    • Przeglądający   0 użytkowników

      Brak zarejestrowanych użytkowników przeglądających tę stronę.