Obsah fóra
PravidláRegistrovaťPrihlásenie




Odpovedať na tému [ Príspevkov: 11 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
android ListView a jeho dynamicke nacitavanie

Registrovaný: 11.02.09
Prihlásený: 28.03.23
Príspevky: 2208
Témy: 145
Bydlisko: Liptovský M...
Príspevok NapísalOffline : 21.04.2014 23:12

Zdravim, trochu som sa zasekol..

Mam vytvoreny nejaky objekt ListView, k nemu ArrayAdapter ktory nacita zoznam stringov pre ListView z nejakeho pola, ale ako spravit aby to nacitavalo dynamicky, ked sa to pole stringov bude menit pocas behu porgramu? Napr. ked uzivatel stlaci tlacitko, tak v tom poli Stringov pribudne jedna polozka a nacita sa do ListView. Mam..
Kód:
ArrayList<String> times_array = new ArrayList<String>();

ListView times_list = (ListView) findViewById(R.id.times_list);
ArrayAdapter adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, times_array);

times_list.setAdapter(adapter);


cize do toho times_array sa budu pridavat Stringy (v metode on_click). A co s tym dalej aby to nacitalo vzdy pri pridani?







_________________
"Only a warrior chooses pacifism, others are condemned to it."
- unknown author
Offline

Užívateľ
Užívateľ
android ListView a jeho dynamicke nacitavanie

Registrovaný: 05.04.11
Príspevky: 1693
Témy: 50
Bydlisko: Žilina, Pop...
Príspevok NapísalOffline : 21.04.2014 23:33

Kód:
adapter.add("ahoj");
adapter.notifyDataSetChanged();







_________________
rMBP 13 2015
iPhone 7
Offline

Užívateľ
Užívateľ
android ListView a jeho dynamicke nacitavanie

Registrovaný: 11.02.09
Prihlásený: 28.03.23
Príspevky: 2208
Témy: 145
Bydlisko: Liptovský M...
Príspevok Napísal autor témyOffline : 21.04.2014 23:35

a na co je tam ten array list ked pouzivas adapter.add("ahoj") ?







_________________
"Only a warrior chooses pacifism, others are condemned to it."
- unknown author
Offline

Užívateľ
Užívateľ
android ListView a jeho dynamicke nacitavanie

Registrovaný: 05.04.11
Príspevky: 1693
Témy: 50
Bydlisko: Žilina, Pop...
Príspevok NapísalOffline : 21.04.2014 23:41

Pretože ty vytvoríš adaptér zvyčajne nad nejakými dátami, ktoré máš v tom arrayliste. A aby si potom stále nerobil ako pako, add do arraylistu a zase vytvorenie adaptéru tak pridáš priamo do adaptéru nie ? (http://developer.android.com/reference/ ... html#add(T))

Adaptér si môžeš vytvoriť vlastný, čo ti odporúčam urobiť aby si pochopil načo to je, ale vytvor ho z BaseAdapter-u to budeš mať len dobré pre seba :)







_________________
rMBP 13 2015
iPhone 7
Offline

Užívateľ
Užívateľ
android ListView a jeho dynamicke nacitavanie

Registrovaný: 11.02.09
Prihlásený: 28.03.23
Príspevky: 2208
Témy: 145
Bydlisko: Liptovský M...
Príspevok Napísal autor témyOffline : 21.04.2014 23:52

Aha, tak to je celkom jednoduche, len vsade sa to nejak zlozito vysvetluje :) Cize to mam zdedit triedu BaseAdapter ci ju vytvorit nanovo?







_________________
"Only a warrior chooses pacifism, others are condemned to it."
- unknown author
Offline

Užívateľ
Užívateľ
android ListView a jeho dynamicke nacitavanie

Registrovaný: 05.04.11
Príspevky: 1693
Témy: 50
Bydlisko: Žilina, Pop...
Príspevok NapísalOffline : 21.04.2014 23:58

Spoiler: zobraziť
public class ComentsAdapter extends BaseAdapter implements Filterable {

private List<Coment> originalData = null;
private List<Coment> filteredData = null;
private LayoutInflater mInflater;
private ItemFilter mFilter = new ItemFilter();

/**
* @param context
* @param resource
* @param objects
*/
public ComentsAdapter(Context context, List<Coment> data) {
this.filteredData = data;
this.originalData = data;
mInflater = LayoutInflater.from(context);
}

@Override
public View getView(int position, View view, ViewGroup parent) {
View updateView;
ViewHolder viewHolder;
if (view == null) {

updateView = mInflater.inflate(R.layout.coments_item, null);

viewHolder = new ViewHolder();

// Používate¾ské meno èloveka, ktorý napísal komentár
viewHolder.comentsUsernameView = (TextView) updateView
.findViewById(R.id.coments_item_login);

// Dátum a èas vytvorenia komentáru
viewHolder.comentsDateView = (TextView) updateView
.findViewById(R.id.coments_item_date);

// Textový obsah komentáru
viewHolder.comentsValueView = (TextView) updateView
.findViewById(R.id.coments_item_value);

updateView.setTag(viewHolder);
} else {
updateView = view;
viewHolder = (ViewHolder) updateView.getTag();
}

viewHolder.comentsUsernameView.setText(filteredData.get(position)
.getUsername().toString());
viewHolder.comentsDateView.setText(filteredData.get(position).getDate()
.toString());
viewHolder.comentsValueView.setText(filteredData.get(position)
.getValue().toString());

return updateView;
}

@Override
public int getCount() {
return filteredData.size();
}

@Override
public Coment getItem(int position) {
return filteredData.get(position);
}

@Override
public long getItemId(int position) {
return position;
}

public Filter getFilter() {
return mFilter;
}

private class ItemFilter extends Filter {
@Override
protected FilterResults performFiltering(CharSequence constraint) {

String filterString = constraint.toString().toLowerCase();

FilterResults results = new FilterResults();

final List<Coment> list = originalData;

int count = list.size();
final ArrayList<Coment> nlist = new ArrayList<Coment>(count);

Coment filterableComent;

for (int i = 0; i < count; i++) {
filterableComent = list.get(i);
if (filterableComent.getValue().toLowerCase()
.contains(filterString)) {
nlist.add(filterableComent);
}
}

results.values = nlist;
results.count = nlist.size();
return results;
}

@SuppressWarnings("unchecked")
@Override
protected void publishResults(CharSequence constraint,
FilterResults results) {
filteredData = (ArrayList<Coment>) results.values;
notifyDataSetChanged();
}
};

private static class ViewHolder {
public TextView comentsUsernameView;
public TextView comentsDateView;
public TextView comentsValueView;
}

/**
*
*/
public void clear() {
filteredData.clear();
notifyDataSetChanged();
}

/**
* @param com
*/
public void add(Coment com) {
filteredData.add(com);
notifyDataSetChanged();
}

}


Takto nejako vyzerá vlastný adaptér, je tam toho viac ale použitie je jednoduché. To filtrovanie je ak používaš potom vyhľadávanie výsledkov v zozname.







_________________
rMBP 13 2015
iPhone 7
Offline

Užívateľ
Užívateľ
android ListView a jeho dynamicke nacitavanie

Registrovaný: 11.02.09
Prihlásený: 28.03.23
Príspevky: 2208
Témy: 145
Bydlisko: Liptovský M...
Príspevok Napísal autor témyOffline : 23.04.2014 19:22

Aha tak skor ci neskor ma to aj tak neminie ale zatial mi staci velmi jednoduchy ListView s obycajnym TextView, kde sa budu nacitavat medzicasy. Ale potreboval by som aby sa tie medzicasy ukladali v tom ListView od vrchu a nie na koniec na spodok. Nevies ci je na to nejaky parameter alebo funkcia?







_________________
"Only a warrior chooses pacifism, others are condemned to it."
- unknown author
Offline

Užívateľ
Užívateľ
android ListView a jeho dynamicke nacitavanie

Registrovaný: 05.04.11
Príspevky: 1693
Témy: 50
Bydlisko: Žilina, Pop...
Príspevok NapísalOffline : 23.04.2014 19:56

priamo listview-vom nie je nič také podporované ak dobre viem, ale skús to urobiť takto
Kód:
tvojadapter.add(0, tvojObjekt);







_________________
rMBP 13 2015
iPhone 7
Offline

Užívateľ
Užívateľ
android ListView a jeho dynamicke nacitavanie

Registrovaný: 11.02.09
Prihlásený: 28.03.23
Príspevky: 2208
Témy: 145
Bydlisko: Liptovský M...
Príspevok Napísal autor témyOffline : 23.04.2014 20:12

Metoda add ma len jeden parameter a to dany objekt, ale vsimol som si ze je tam aj metoda insert(T object, int index), kde index je pozicia kam sa ma vlozit novy objekt a tu som nastavil na 0. Funguje to perfektne.







_________________
"Only a warrior chooses pacifism, others are condemned to it."
- unknown author
Offline

Užívateľ
Užívateľ
android ListView a jeho dynamicke nacitavanie

Registrovaný: 11.02.09
Prihlásený: 28.03.23
Príspevky: 2208
Témy: 145
Bydlisko: Liptovský M...
Príspevok Napísal autor témyOffline : 05.05.2014 21:18

WTF? Snazim sa pridat do jedneho riadku ListView-u dve TextView a vsade citam, ze na to treba vytvorit vlastny adapter a prepisat metodu getView, ktora ziska dany riadok kde sa budu doplnat tie textview. Vsade sa pise to iste, vsetkemu rozumiem, a z na to ze vsade tym indickym radoby programatorom v kazdom priklade chyba vysvetlena jedna a ta ista podstatna vec. Odkial z rite volaju tu metodu getView a co za parametre jej predavaju?

Kód:
public View getView (int position, View convertView, ViewGroup parent)


Kde mozem najst nejaky normalny priklad, kde si mozem pozret tento jeden blby riadok, kde sa vola tato metoda a co za blby parameter View convertView mu to predavaju??? Napr. tu: http://hmkcode.com/android-custom-listview-items-row/ Ako to moze fungovat ked sa vsade dusuju ze treba prepisat metodu getView a potom ju nikde nevolaju??? Dokonca tento exot ani nijak nevyuziva ten parameter convertView. Kde je to poriadne vysvetlene?







_________________
"Only a warrior chooses pacifism, others are condemned to it."
- unknown author
Offline

Užívateľ
Užívateľ
android ListView a jeho dynamicke nacitavanie

Registrovaný: 05.04.11
Príspevky: 1693
Témy: 50
Bydlisko: Žilina, Pop...
Príspevok NapísalOffline : 05.05.2014 21:54

getView je vlastne metóda, ktorá ti vráti jeden daný riadok listu, resp. view :) getview sa volá pre každý jeden záznam tvojho datasetu, alebo arraylistu, proste toho kde máš tie dáta, automatický.

ten príklad je zlý používaj statickú triedu takto :

Kód:
public class RatingsAdapter extends ArrayAdapter<Rating> {

   private List<Rating> mRatingsList;

   /**
    * @param context - context of application
    * @param resource - layout file of row item
    * @param objects - datasource for row item
    */
   public RatingsAdapter(Context context, int resource, List<Rating> objects) {
      super(context, resource, objects);
      mRatingsList = objects;
   }

   /* (non-Javadoc)
    * @see android.widget.ArrayAdapter#getView(int, android.view.View, android.view.ViewGroup)
    */
   @Override
   public View getView(int position, View view, ViewGroup parent) {
      View updateView;
      ViewHolder viewHolder;
      if (view == null) {
         LayoutInflater inflater = LayoutInflater.from(getContext());
         updateView = inflater.inflate(R.layout.ratings_item, null);

         viewHolder = new ViewHolder();

         // Name of user
         viewHolder.ratingUserView = (TextView) updateView
               .findViewById(R.id.ratings_item_username);

         // Rating message content
         viewHolder.ratingMessageView = (TextView) updateView
               .findViewById(R.id.ratings_item_message);

         // Rating datetime
         viewHolder.ratingDateView= (TextView) updateView
               .findViewById(R.id.ratings_item_date);

         // Users rating
         viewHolder.ratingBarView = (RatingBar) updateView
               .findViewById(R.id.ratings_item_ratingbar);

         updateView.setTag(viewHolder);
      } else {
         updateView = view;
         viewHolder = (ViewHolder) updateView.getTag();
      }

      Rating rating = getItem(position);
      viewHolder.ratingUserView.setText(rating.getUserName());
      viewHolder.ratingDateView.setText(rating.getDate());
      viewHolder.ratingMessageView.setText(rating.getMessage());
      viewHolder.ratingBarView.setRating(Float.parseFloat(rating.getRate()));

      return updateView;
   }

   private static class ViewHolder {
      public TextView ratingUserView;
      public TextView ratingMessageView;
      public TextView ratingDateView;
      public RatingBar ratingBarView;

   }
}







_________________
rMBP 13 2015
iPhone 7
Odpovedať na tému [ Príspevkov: 11 ] 


Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy. Vkladanie údajov do ListView

v Delphi, Visual Basic

2

524

10.01.2011 13:09

coldak Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. [Delphi] Progressbar do Listview

v Delphi, Visual Basic

2

631

10.09.2010 21:24

coldak Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. ListView a WebBrowser (Visual Basic 2010)

v Delphi, Visual Basic

0

454

10.04.2012 11:30

lukas15 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. [delphi] listview load/save to file

v Delphi, Visual Basic

3

1122

18.04.2010 23:13

ha2 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. dynamicke obrazky

v HTML, XHTML, XML, CSS

11

770

09.02.2008 1:06

HAE07 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Dynamické objekty

v PHP, ASP

25

1075

04.01.2010 15:37

Tominator Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Dynamicke pole..

v PHP, ASP

3

419

28.09.2011 22:56

Ando Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Router - dynamicke IP

v Siete

3

411

09.08.2011 13:19

michalesku Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. dynamické menenie udalosti onclick

v JavaScript, VBScript, Ajax

5

882

13.06.2008 22:47

emer Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Dynamicke programovanie - maximalizacia ceny

v Assembler, C, C++, Pascal, Java

2

612

25.06.2015 11:59

nBXXL Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Delphi - Dynamické vykreslovanie (runtime) komponentov

v Delphi, Visual Basic

3

546

15.10.2010 10:05

coldak Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Dynamicke pole v Triede C++

v Assembler, C, C++, Pascal, Java

1

2007

19.11.2008 14:51

Dark_Raven Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Dynamicke pole - problem s pridanim zatvoriek

v JavaScript, VBScript, Ajax

7

623

27.08.2011 15:08

chrono Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. DYNAMICKE vs. STATICKE pole smernikov !!!SUUURNE!!!

v Assembler, C, C++, Pascal, Java

6

2052

11.05.2009 8:48

sangokoko Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. C++ a Dynamické pretypovanie funkcie z DLLky...

v Assembler, C, C++, Pascal, Java

4

758

07.08.2009 22:15

marian_sk Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Nacitavanie

v JavaScript, VBScript, Ajax

7

543

03.11.2012 18:58

Ravokman Zobrazenie posledných príspevkov


Nemôžete zakladať nové témy v tomto fóre
Nemôžete odpovedať na témy v tomto fóre
Nemôžete upravovať svoje príspevky v tomto fóre
Nemôžete mazať svoje príspevky v tomto fóre

Skočiť na:  

Powered by phpBB Jarvis © 2005 - 2024 PCforum, webhosting by WebSupport, secured by GeoTrust, edited by JanoF
Ako väčšina webových stránok aj my používame cookies. Zotrvaním na webovej stránke súhlasíte, že ich môžeme používať.
Všeobecné podmienky, spracovanie osobných údajov a pravidlá fóra