Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

Καλησπέρα  , προσπαθώ να προσθέτω το ίδιο view κάθε φορά που πατάω ένα κουμπί στο υπάρχων layout προγραμματιστικά .

 

Wrapper

---------------------------------

 

 

<LinearLayout>

 

</LinearLayout>

 

 

Item

---------------------------------

<LinearLayout>

<TextView  />

<EditText   />

</LinearLayout>

 

Θέλω κάθε φορά που πατάω το κουμπί να προσθέτω το παραπάνω linearLayout μέσα στο wrapper κάθε φορά το ένα κάτω από το άλλο .

 

 

Γίνεται με listView?

 

Δημοσ.

Μπορείς με την βοήθεια της διαδικασίας View.addView(child_view) (και ανάλογες) όπου View θα είναι το LinearLayout (ParentView) που θα προστίθεται κάθε νέο child_view. Το child_view είναι ένα View που θα περιέχει το Layout resource που επιθυμείς να προσθέτεις στο LinearLayout (Parent) View, το σχεδιάζεις και αυτό κανονικά μέσω του designer, βάζεις σε αυτό το TextView και το EditText που θες κλπ (και το φορτώνεις μέσο της View.Inflate).

 

- Φυσικά θα πρέπει να έχεις υπόψη σου ότι τα View που προσθέτεις δυναμικά θα πρέπει να διατηρούνται κατά το onPause/onResume και κατά διάφορα Configuration changed events που προκαλούν onPause/onResume (καλύτερα κλείσε τα πιο ενοχλητικά από το AndroidManifest.xml) διαφορετικά θα έχεις μπελάδες κλπ.

- Θα πρέπει επίσης να κρατάς (book-keeping) κάπου τα νέα View για εύκολο reference κλπ.

- Εννοείται το Parent View (LinearLayout) σου στο οποίο προστίθενται τα child_view θα πρέπει να είναι εντός ScrollView.

- Η όλη διαδικασία χρειάζεται δουλεία αλλά είναι εφικτό να γίνει (οι περισσότεροι κατάλογοι [Contacts] στα κινητά τηλέφωνα με Android κάπως έτσι αναπτύσσονται ;)).

- και μην το παρακάνεις με πολλά children Views!!

Δημοσ.

Γιατί να μην βάλει listview ;

Ναι, μια χαρά γίνεται με listview. Ψάξε ένα παράδειγμα στο google και θα καταλάβεις.

 

Υγ: το μόνο "δύσκολο" είναι να φτιάξεις τον Adapter

Δημοσ.

Γιατί να μην βάλει listview ;

Ναι, μια χαρά γίνεται με listview. Ψάξε ένα παράδειγμα στο google και θα καταλάβεις.

 

Υγ: το μόνο "δύσκολο" είναι να φτιάξεις τον Adapter

Όπως θέλεις γίνεται, για ListView ας δει εδώ  :)

  • Like 1
Δημοσ.

οσα children view και να βάλεις πάντως δεν υπάρχει πρόβλημα

επίσης αν έχουν id τα σώζει μόνο του στα διάφορα states

και όντως αν μπορείς να το κάνεις με listview θα είναι το καλύτερο

Δημοσ.

οσα children view και να βάλεις πάντως δεν υπάρχει πρόβλημα

επίσης αν έχουν id τα σώζει μόνο του στα διάφορα states

και όντως αν μπορείς να το κάνεις με listview θα είναι το καλύτερο

Σε αντίθεση με το ListView το οποίο έχει εσωτερικούς μηχανισμούς που του επιτρέπουν να παρουσιάζει με ελάχιστη δέσμευση πόρων ανεξάρτητο αριθμό αντικειμένων, το LinearLayout/ScrollView δεν υποστηρίζουν κάτι τέτοιο οπότε η προσθήκη View σε αυτά χρειάζεται σύνεση - διαφορετικά θα το μετανιώσεις.
 
Χμ.. είτε ορίσεις είτε όχι Id (πχ. View.setId), σε περιπτώσεις αλλαγής activity state (πχ. orientation, screenSize κλπ) τα children views μπορεί να χαθούν.
Δημοσ.

Ευχαριστώ καταρχάς για τις απαντήσεις σας.Το έκανα με LinearLayout προσθέτοντας κάθε φορά από ένα child.Το orientation δεν αλλάζει ούτε θέλω να κρατάω το state του Activity . Το μόνο που με ενδιαφέρει είναι να δίνω διαφορετικά id σε κάθε child για να τα ξεχωρίζω ώστε να τα έχω σε βάση.

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...