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

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

Δημοσ.

ωραίος τίτλος :P

 

έχω ένα linearlayout μέσα σε άλλα layouts το οποίο ξεκινάει άδειο και του προσθέτω δυναμικά κάποια custom views με editTexts

το πρόβλημά μου είναι οτι όταν αλλάζει η οθόνη σε landscape ή αντίθετα αυτά δεν σώζονται όπως θα έπρεπε και όταν ξανατρέχει η oncreate δεν υπάρχει κανένα

 

δεν θέλω να βάλω στο manifest να μην ξανακάνει create το Activity γιατί βάζω διαφορετικό layout ανάλογα με το πως είναι η οθόνη

 

http://developer.android.com/guide/components/activities.html#Lifecycle

εδώ λέει πως το μόνο που χρειάζεται είναι να έχουν id και το σύστημα τα σώζει μόνο του

 

τι μπορώ να κάνω?

μήπως να το γυρίσω σε fragment?

Δημοσ.

ωραίος τίτλος :P

 

έχω ένα linearlayout μέσα σε άλλα layouts το οποίο ξεκινάει άδειο και του προσθέτω δυναμικά κάποια custom views με editTexts

το πρόβλημά μου είναι οτι όταν αλλάζει η οθόνη σε landscape ή αντίθετα αυτά δεν σώζονται όπως θα έπρεπε και όταν ξανατρέχει η oncreate δεν υπάρχει κανένα

 

δεν θέλω να βάλω στο manifest να μην ξανακάνει create το Activity γιατί βάζω διαφορετικό layout ανάλογα με το πως είναι η οθόνη

 

http://developer.android.com/guide/components/activities.html#Lifecycle

εδώ λέει πως το μόνο που χρειάζεται είναι να έχουν id και το σύστημα τα σώζει μόνο του

 

τι μπορώ να κάνω?

μήπως να το γυρίσω σε fragment?

 

Πιστεύω ότι αυτό γίνεται επειδή ο κώδικας που είναι σχετικός με την προσθήκη των views/edittexts, δε βρίσκεται στην onCreate. Έτσι κάθε φορά που αλλάζει ο προσανατολισμός και τρέχει η onCreate οι πληροφορίες που επαναφέρει είναι η κενή layout. Μάλλον λοιπόν θα πρέπει είτε η προσθήκη να γίνει στην onCreate, είτε να αποθηκεύεις την τρέχουσα κατάσταση της layout κάθε φορά μέσω bundle, sharedPreferences, και γενικότερα κάποιον από τους τρόπους που διαθέτει το android για αποθήκευση.

Δημοσ.

 Όχι (ελληνικό forum κλπ κλπ). Στον άλλαξα...

thanks, είχα κολλήσει και δε μπορούσα να σκεφτώ ελληνικό

 

Πιστεύω ότι αυτό γίνεται επειδή ο κώδικας που είναι σχετικός με την προσθήκη των views/edittexts, δε βρίσκεται στην onCreate. Έτσι κάθε φορά που αλλάζει ο προσανατολισμός και τρέχει η onCreate οι πληροφορίες που επαναφέρει είναι η κενή layout. Μάλλον λοιπόν θα πρέπει είτε η προσθήκη να γίνει στην onCreate, είτε να αποθηκεύεις την τρέχουσα κατάσταση της layout κάθε φορά μέσω bundle, sharedPreferences, και γενικότερα κάποιον από τους τρόπους που διαθέτει το android για αποθήκευση.

 

στην onCreate δεν μπορεί να γίνει κάτι γιατί τα views προστίθενται κάθε φορά που πατιέται ένα κουμπί

με bundle προσπάθησα αλλά κάτι κάνω λάθος, θα το ξαναδώ

σε shared preferences δεν με ενδιαφέρει να το σώσω γιατί δεν θέλω να μένει μόνιμο, μόνο στην αλλαγή θέλω να τα περνάει από το ένα στο άλλο

Δημοσ.

Διάβασε εδώ το επίσημο documentation για την περίπτωση σου, προσωπικά είτε θα αποθήκευα την κατάσταση του προγράμματος κατά το PAUSE επαναφέροντας την κατά το RESUME προσθέτοντας ξανά τα ανάλογα controls κλπ όπως ήταν πριν ή θα ζητούσα από το Android (μέσο manifest.xml) να μην διαχειρίζεται αυτόματα την αλλαγή orientation (ξανά ξεκινώντας κλπ) αλλά να την διαχειρίζομαι εγώ χειροκίνητα μέσο του onConfigurationChanged() event.

Δημοσ.

τα έχω δει και τα δύο που λέτε αλλά δεν βγάζω άκρη

 

δοκιμάζω τώρα με τον πρώτο τρόπο να περνάω object πριν την αλλαγή αλλά είναι deprecated από ότι διαβάζω και θέλει αλλαγή για να γίνει με fragments οπως προτείνει

 

να τη διαχειρίζομαι χειροκίνητα δε με βολεύει νομίζω

Δημοσ.

Προσωπικά δεν θα έμπαινα σε περισσότερο κόπο από το Pause / Resume της κατάστασης του προγράμματος.

 

Καλή συνέχεια!!

  • Like 1
Δημοσ.

τελικά το άλλαξα και το έκανα με fragment και περίπου όπως λες

στην οnstop μαζεύω ότι input έχω και τα ξαναφτιάχνω στην createview

μάλλον γινότανε και πριν αλλά κάτι έκανα λάθος

Δημοσ.

τα έχω δει και τα δύο που λέτε αλλά δεν βγάζω άκρη

[OFFTOPIC]Μήπως δεν βγάζεις άκρη επειδή βλέπεις κύκλους; Για το avatar λέω. :P[/OFFTOPIC]

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

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

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

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

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

Σύνδεση

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

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