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

Ερωτήσεις προγραμματισμού σε Android μεσω eclipse


xarda

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

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

από τη στιγμή που σου τα δινει έτοιμα γιατί να τα ξαναφτιάξεις

 

όρισε στο xml layout σου τα textview που θέλεις με το κείμενο που θες να έχουν αρχικά όταν ξεκινάει η εφαρμογή

στην oncreate πάρε τα id τους σε μια μεταβλητή και μετά στο πρόγραμμά σου άλλαζε το text τους σε ότι θες κάθε φορά με την settext

  • Like 2
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Απ'οτι διαβαζω είναι μαλον περιττο να χρησιμοποιώ constructor γαι την δημιουργία αντικειμένων κτλ.Τον constructor τον αντικαθιστά

η OnCreate function.

 

Εγω σκέφτομαι πως θα ήταν καλύτερα δομημένος ο κώδικας εαν για παράδειγμα αν ηθελα να δημιουργήσω ενα TextView να εφτιαχνα μια ξεχωριστή κλάση π.χ myTextViewClass { } οπου στον constructor της θα δημιουργόυσα ενα αντικείμενο τύπου TextView και με συναρτήση get να "δημιουργουσα" κάθε φορα ενα νέο TextView obj το οποίο θα καλούσα μέσα στην OnCreate.Επίσης με συναρτήσεις set και get να "εγραφα" στο TextView οτι ήθελα και απλά εντος της OnCreate function και πάλι να είχα ενα TextViewClassObj.setText( myString ); !!

 

είναι σωστή η σκέψη η απλά πλατιάζω με αποτελεσμα να αργει και η εφαρμογή γιατι ετσι καλω αρκετες συναρτησεις με κοστος στον χρονο αποκρισης;

Αυτή η προσέγγιση έχει νόημα αν κάποια στιγμή στο μέλλον αποφασίσεις ότι θέλεις να κατασκευάσεις ένα δικό σου, custom κοντρόλ (λέω ένα παράδειγμα).

 

Η γνώμη μου είναι να μην περιπλέξεις τα πράγματα ειδικά τώρα που είσαι στην αρχή, και οπωσδήποτε όχι για να κάνεις πράγματα που λύνονται εύκολα, άνετα & γρήγορα με τετριμμένο τρόπο.

 

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

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

2 ερωτήσεις:

Είδα το διαγραμμα του lifecycle μιας activity.Αυτο που θέλω να μάθω είναι σε κάθε φάση π.χ OnCreate , OnDestroy κ.τ.λ συνήθως τί είδους functions πρέπει να εκτελεστούν.Για παράδειγμα έχω γραψει τα παρακάτω...

 

package s.com.example.s;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.content.Intent;

public class MainActivityClass extends Activity {

	Button welcomeButton;
	Button closeSapp;
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main_layout_activity_class);
		
		this.onClose();
		
	}
	
	protected void onStart(){
		
		this.goToNewActivity();	
		
	}
	
	protected void onClose(){
		
		closeSapp = (Button)findViewById(R.id.closeSapp);
		closeSapp.setOnClickListener(new View.OnClickListener() {
			
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				finish();
			}
		});
	}
	
	
	
	
	public void goToNewActivity(){
		
		welcomeButton = (Button)findViewById(R.id.welcomeButton);
		welcomeButton.setOnClickListener(new View.OnClickListener() {
			
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				Intent intent = new Intent(v.getContext() , newActivityClass.class );
				startActivity(intent);
			}
		});
		
	}

 

2.Ποιος είναι ο καλύτερος τρόπος ωστε να τερματίζω την εφαρμογή μου αλλα και ποιος είναι ο κώδικας για να τερματίζω ενα activity;

 

 

και κάτι που θυμήθηκα μόλις!

 

για ποιο λόγο καλείται η onCreate(...) εντός της ;;;;;

 

 

	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
        ..............
        }
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

2.Ποιος είναι ο καλύτερος τρόπος ωστε να τερματίζω την εφαρμογή μου αλλα και ποιος είναι ο κώδικας για να τερματίζω ενα activity;

 

Κατά τη γνώμη μου η finish()

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

και κάτι που θυμήθηκα μόλις!

 

για ποιο λόγο καλείται η onCreate(...) εντός της ;;;;;

 

 

	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
        ..............
        }

 

xarda ρωτάς πολύ βασικά πράγματα... αυτα μπορείς να τα βρείς παντού. διάβασε πρώτα μερικά tutorials για java (η για object oriented programming).. καλείται γιατι γίνεται override η μέθοδος της κλάσης που έχει κληρονομηθεί. αυτο το κάνει για να προσθέσει εντολές χωρίς να πρέπει να αλλάξει εκείνη την κλάση.

 

δεν θέλω να σε πιέσω η κάτι αλλα πρέπει οχι απλά να κοιτάς κάτι, αλλα να το μαθαίνεις. σιγα σιγά.  εσύ προσπαθείς να γράψεις αμέσως πρόγραμα που να δουλεύει όπως το θέλεις... δεν γίνεται αυτό με μαγικά ....

  • Like 2
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Ποια είναι η άποψη σας στον τερματισμό μιας εφαρμογής  ;;Πρεπει να την τερματίζουμε με κώδικα η φροντίζει το λειτουργικο γι'αυτο;

 

Διαβάζω απο την μια πως το λειτουργικό απο μόνο του τερματίζει την εφαρμογή ή το νέο activity που εχει δημιουργηθεί οταν επιστρέφει στο Home/main activity ας πούμε.Απο την αλλή πως την κρατάει στη μνήμη.....

Τελικά τι συμβαίνει;;

 

Μήπως παίζει ρόλο το είδος της εφαρμογής;Για παράδειγμα αν φτιάξεις ενα απλό ημερολόγιο τότε πρεπει να τερματιστεί η εφαρμογή καθώς δεν χρειάζετε να τρέχει στο background ενω αν εχω εφαρμογή με RSS feeds τοτε θα πρέπει να τρέχει ωστε να ενημερώνεται....

 

τι λέτε;

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

συσκευή με android έχεις?

αν έχεις γράψε μια εφαρμογή με όλες τις συναρτήσεις για το lifecycle και κάνε ένα system out να δεις πότε καλείται η κάθε μία σε πραγματικές συνθήκες

 

πχ όταν γίνεται onStop την κρατάει στη μνήμη

αν ανοίξεις τις πρόσφατες εφαρμογές και την σύρεις για να την βγάλεις καλείται η onDestroy, συνήθως εκεί τερματίζεται η εφαρμογή

 

σε κάθε state πρέπει να κάνεις και τις κατάλληλες κινήσεις

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Εχω συσκευη με android αλλα κοντεύω να τρελαθώ!!!

 

Κάνω ενα απλο Project με δύο activities που πατώντας ενα Button απλά ακούγεται ενας ήχος.mp3.

 

Στην αρχή ετρεχε κανονικά και χαρα εγωωωωωω.Απο ενα σημείο και μετα οταν πατουσα το button για να μεταφερθω στο νέο activity 

μου εμφανιζει αυτο το καταραμένο μήνυμα και ο emulator και το xperia:

 

 

 

Υπήρξε μή αναμενομενη διακοπή της εφαρμογής MyApplication (διαδικασία something.example..something).Προσπαθήστε ξανά.


τι συμβαίνει θεε μου;;;;Περισσότερο χρονο χάνω απο τετοιου είδους βλακείες του eclipse ή του sdk παρα στο να μάθω προγραμματισμο!!!!!!ΕΛΕΟΣ ΚΑΙ ΗΜΑΡΤΟΝ!!!
 ( βασικά αυτο αρχισε να συμβαίνει οταν εγραψα λιγο κώδικα για Toast αν παίζει κάποιο ρόλο )

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Αν θες να μάθεις προγραμματισμό να είσαι προετοιμασμένος να φας πολλές ώρες για αντίστοιχες "βλακείες". Ιδιαίτερα στο android. Μάθε να χρησιμοποιείς τον debugger για να εντοπίσεις ακριβώς που "χτυπάει" το πρόγραμμα.

  • Like 2
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Ο καλύτερος σου φίλος κατά την ανάπτυξη λογισμικού σε Android (πέρα από τον debugger του Eclipse) είναι το LogCat (πρόκειται για Android monitor το οποίο παρακολουθεί και ενημερώνει συνεχώς για την ροή εκτέλεσης και λειτουργίας του προγράμματος και του συστήματος με αναλυτικές περιγραφές σφαλμάτων & πληροφοριών), θα σε γλυτώσει από μεγάλη ταλαιπωρία (και έρχεται ενσωματωμένο στο Android SDK + Eclipse).

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Οκ με τον debuger..

Κάτι αλλο που δημιουργεί πρόβλημα....

 

Φάινεται πως ακομα και αν αλλάξω ορισμένα πράγματα στο project και τρεχω τον emulator κραταει ας πουμε το παλιο project στη μνήμη

παρολο που κάνω clear και built.Κρατάει στη μνήμη δηλαδη τα παλιά.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Οκ με τον debuger..

 

Κάτι αλλο που δημιουργεί πρόβλημα....

 

Φάινεται πως ακομα και αν αλλάξω ορισμένα πράγματα στο project και τρεχω τον emulator κραταει ας πουμε το παλιο project στη μνήμη

παρολο που κάνω clear και built.Κρατάει στη μνήμη δηλαδη τα παλιά.

Δοκίμασε να απ' εγκαταστήσεις το πρόγραμμα σου από τον emulator, επίσης ρίξε μια ματιά στα μηνύματα του LogCat και της Console του Eclipse όταν ζητάς να εκκινήσει το πρόγραμμα σου, τέλος ορισμένες φορές το Eclipse αργεί να τα βρει με το ADB και η εκτέλεση του προγράμματος αποτυγχάνει (για κανέναν προφανή λόγο) οπότε χρειάζεται να ζητήσεις περισσότερες από μια φορές εκκίνηση του προγράμματος (!) -ενημερώνεσαι για το σφάλμα, με μήνυμα στην Console του Eclipse αλλά σε μεταγενέστερο χρόνο..

 

* Σε εμένα επίσης είναι πολύ συνηθισμένο πρόβλημα να κολλάει ο ADB server, οπότε σε αυτή την περίπτωση απλά τον κάνω KILL από το TaskManager (το restart του δεν αρκεί - σε εμένα πάντα) αφού πρώτα φορτώσω τον emulator μέσο του Eclipse, ύστερα λειτουργεί σωστά.

 

** Ο Android emulator βγάζει αρκετά προβλήματα (:-/), ελπίζω κάτι από τα παραπάνω να βοηθήσει.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

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

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

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

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

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

Σύνδεση

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

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