Hozzon létre egy egyéni listview, programozás android, java - már az első lépések

Nemrég zavarba létrehozásával egyéni a ListView, így ahelyett, hogy egy sorban, minden egyes eleme a lista lenne egy pár sort: is, mint például a cím és az alcím. Babrált egy internetes és arra a következtetésre jutott, hogy az orosz ajkú megfelelő téma oktatóját sajnos nem. Nitsche szörnyű. Most van. ). Legalább egy orosz és remélem megfelelő :).

Tehát, először is, megpróbálom leírni a logika létrehozása az ilyen a ListView, majd példát a forrás.

Kezdjük azzal, hogy a kijelző az információkat a ListView szükségünk van egy adapter - egy réteg között az adatokat, és a grafikus kijelző a ListView. Ha azt akarjuk, a szokásos lista - ami minden nagy - használatra kész osztály StringAdapter és örül. Pass minden olyan string array, majd átadjuk a hálózati adaptert a ListView és készülj ListView töltött stringtömb. Azonban minden sokkal nehezebb lesz, ha minden egyes tételt ListView tartalmaz mást, mint egy sort. Erre az esetre van, hogy hozzon létre egy külön fájlban c elrendezés (elrendezés), amely tartalmazza a tartalmát minden ListView elem. Mert kell egy listát a címek és feliratok hoztam létre itt egy ilyen fájl:

Hozzon létre egy egyéni listview, programozás android, java - már az első lépések

Külső elrendezés nézet

Van két szövegmezőt a jelölő fájl: az első és a második item_headerText item_subHeaderText.

A következő lépés az, hogy megteremtse a szerkezet fejezetek és alcímek. Megcsináltam itt ebben a kis osztályban:

Most folytassa a végrehajtását egy osztály adapter. Tény, hogy ez az osztály illesztő létrehozza minden elem a ListView, és ezért a mi feladatunk éppen az alkotás minden elem. Amellett, hogy az osztály adapter rendelt még néhány más funkciót. Személy szerint, én vagyok az adapter örökölt egy absztrakt osztály BaseAdapter. Meg kell, hogy végre néhány módszereit. Amit valójában nem:

Most nézzük meg, mi az, ami: MyAdapter () konstruktor két paramétert: az első - összefüggésben a második tömb értékek ahonnan fogunk építeni a ListView. getCount () és a getItem () úgy gondolja, a magyarázat nem szükséges. Legérdekesebb történik a módszer getView (). Ezt a módszert nevezik a ListView amikor a lombozat próbál megszívja magát egy adaptert. Mivel a paraméterek itt jönnek a cikkszám i, amely jelenleg próbál felvenni ListView, üres objektum someView - ez csak, hogy nézet, hogy mi fog kitölteni és ViewGroup például - ami nem más, mint maga töltött ListView.

Ebben az eljárásban először kap az esetben az osztály LayoutInflater - egy osztály, amely létrehozásához használt tárgyak megtekintése a leírások az XML. Ezután someView telt nekünk dob megtekintése tárgy származik a layout fájl. És úgy állítja be paramétereket - mint például a cím és az alcím! Semmi bonyolult, hurrá!

Nos, az utolsó elem - valójában önálló tevékenység osztály:

Itt is, nem probléma merül fel. Forma objektumok listáját, és dobja be a illesztő a névtelen. Hurrá, működik. Itt lehet letölteni ListViewTutorial projekt az Eclipse.

onItemClick módszer került kérésére Dmitrii. Megjegyezzük, hogy a activiti OnItemClickListenr megvalósítja az interfészt. Ennek megfelelően onItemClick módszer az úgynevezett amikor egy kattintás történik néhány elemét a listából. Ha rákattint, akkor hozzon létre felugró értesítés Toast, macska meg a fejlécen az elem, amelyre tapnul felhasználói listát.

Ha kérdése vagy javaslata van - írj! Megpróbálok válaszolni!

Nem tetszik? Hasznos? Megosztani!

Hello, van egy kérdésem:
Kezdetben én tevékenység kód a következőképpen néz ki:
public class SpisokActivity kiterjed AppCompatActivity @Override
védett void onCreate (Bundle savedInstanceState) super.onCreate (savedInstanceState);
setContentView (R.layout.activity_spisok);

ListView lv;
ArrayList adatok = új ArrayList ();

data.add (új jogcím ( «merülnek», «merült», «felmerült», «Kelj fel"));
data.add (új jogcím ( «lehet», «volt / voltak», «volt», «Be"));
data.add (új jogcím ( «medve», «szülte», «született / előfordulók», «szülni"));
data.add (új jogcím ( «üt», «üt», «megverték / verni», «üt"));
data.add (új jogcím ( «lesz», «vált», «lesz», «válás"));
LV = (ListView) this.findViewById (R.id.list);
lv.setAdapter (új MyAdapter (ez, adat));
>
>
működő kód, de volt egy kérdést a sajtó dolgozó ki, majd ezt írtam:
public class SpisokActivity kiterjed android.app.ListActivity @Override
védett void onCreate (Bundle savedInstanceState) super.onCreate (savedInstanceState);
setContentView (R.layout.activity_spisok);

ListView lv;
ArrayList adatok = új ArrayList ();

Kapcsolódó cikkek