Autore Topic: Simil HelloWorld  (Letto 1835 volte)

Offline crack001

  • Nuovo arrivato
  • *
  • Post: 14
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    HTC Desire Z
  • Sistema operativo:
    Ubuntu 10.04
Simil HelloWorld
« il: 21 Novembre 2011, 13:22:00 CET »
0
Salve gente, premetto che questi sono i primi tentativi di programmazione di applicazioni per android, quindi se faccio cavolate le critiche sono ben accettate  :-P

Vi spiego il mio problema, seguendo un paio di guide, e la documentazione ufficiale, volevo creare un semplice programma, dove c'era un bottone, e quando lo cliccavo usciva un testo. è uscito questo:

Codice Java
Codice (Java): [Seleziona]
package com.example.Test1;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;

public class Test1Activity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        final TextView tv=(TextView) findViewById(R.id.textview);
        Button btn=(Button) findViewById(R.id.bottone);
        btn.setOnClickListener(new OnClickListener (){
                public void onClick(View v){
                        tv.setText("Testo di prova");
                }
        });

    }
}

Codice XML
Codice (XML): [Seleziona]
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="fill_parent"
   android:layout_height="fill_parent"
   android:orientation="vertical" >
    <Button
       android:id="@+id/bottone"
       android:layout_margin="10sp"
       android:layout_width="fill_parent"
       android:layout_height="wrap_content"
       android:text="Clicca!!!"
       android:gravity="center_horizontal"
       />

    <TextView
       android:id="@+id/textview"
       android:layout_width="fill_parent"
       android:layout_height="wrap_content"
       android:gravity="center_horizontal" />
               
</LinearLayout>

Ora...io utilizzo eclipse, ho fatto partire l'emulatore, e quando vado a caricare l'applicazione e installarla, esegue tutto correttamente ma quando visualizza mi da semplicemente lo sfondo nero ed il bottone non compare. Dalla visualizzazione grafica della parte xml il bottone dovrebbe essere al centro, però ora non so dove sia il problema, sicuramente sarà una stronzata, qualcuno di voi può aiutarmi?

e visto che mi trovo faccio anche 1 altra domanda...di preciso a cosa serve "setContentView(R.layout.main);"???

Aspetto vostre risposte

Offline ChupaChups

  • Utente junior
  • **
  • Post: 78
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Google Nexus One
  • Play Store ID:
    fedepupo
  • Sistema operativo:
    Ubuntu/Windows 7
Re:Simil HelloWorld
« Risposta #1 il: 21 Novembre 2011, 13:31:57 CET »
0
con setContentView(R.layout.main); stai indicando alla tua activity di utilizzare il layout definito dal file main.xml


se stai utilizzando il livello 8 o superiore delle API, negli xml devi usare MATCH_PARENT al posto di FILL_PARENT, non vorrei sia quello che ti causa il problema

fai una prova e vedi
« Ultima modifica: 21 Novembre 2011, 13:34:19 CET da ChupaChups »

Offline crack001

  • Nuovo arrivato
  • *
  • Post: 14
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    HTC Desire Z
  • Sistema operativo:
    Ubuntu 10.04
Re:Simil HelloWorld
« Risposta #2 il: 21 Novembre 2011, 14:02:11 CET »
0
guarda, ho apportato le modifiche al codice, ho sostituito fill con match, xo ora mi da 2 problemi, il primo è che quando mando in esecuzione il codice e quindi emula il device, mi esce scritto

"Can't bind to local 8600 for debugger"
"Can't bind to local 8601 for debugger"
"Can't bind to local 8602 for debugger"
etc etc


alla fine pulendo la console esce scritto che l'applicazione è stata caricata, però quando la apro mi esce "Unfortunately, test1 has stopped"  :-(

Offline Luigi.Arena

  • Utente senior
  • ****
  • Post: 616
  • DACIA DUSTER 4X4 SUPER
  • Respect: +56
    • Mostra profilo
    • ArenaWebTest
  • Dispositivo Android:
    epad m009
  • Play Store ID:
    Luigi Arena
  • Sistema operativo:
    Windows 7
Re:Simil HelloWorld
« Risposta #3 il: 21 Novembre 2011, 15:13:30 CET »
0
Ciao,
ho provato il tuo xml, il pulsante viene messo in alto al centro e lo carica senza problemi.
Sei sicuro che attendi tutto il caricamento del'emulatore ?
Guarda che ci impiega un pò.
È stata trovata una soluzione al tuo problema?Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato .

Offline crack001

  • Nuovo arrivato
  • *
  • Post: 14
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    HTC Desire Z
  • Sistema operativo:
    Ubuntu 10.04
Re:Simil HelloWorld
« Risposta #4 il: 21 Novembre 2011, 16:20:09 CET »
0
Guarda, io ho apportato le modifiche che mi sono state suggerite e ora il compilatore mi dice che ci sono problemi con la porta debuger, lho scritta. Prima, per quando rigurda l'emulatore si carica si accende installa l'applicazione ma mi da l'errore che ho scritto sopra...help me

Offline Luigi.Arena

  • Utente senior
  • ****
  • Post: 616
  • DACIA DUSTER 4X4 SUPER
  • Respect: +56
    • Mostra profilo
    • ArenaWebTest
  • Dispositivo Android:
    epad m009
  • Play Store ID:
    Luigi Arena
  • Sistema operativo:
    Windows 7
Re:Simil HelloWorld
« Risposta #5 il: 21 Novembre 2011, 16:26:54 CET »
0
Posta tutti i messaggi che ti vengono fuori.
È stata trovata una soluzione al tuo problema?Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato .

Offline crack001

  • Nuovo arrivato
  • *
  • Post: 14
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    HTC Desire Z
  • Sistema operativo:
    Ubuntu 10.04
Re:Simil HelloWorld
« Risposta #6 il: 21 Novembre 2011, 16:34:05 CET »
0
Quando mando in esecuzione il codice e quindi emula il device, mi esce scritto

"Can't bind to local 8600 for debugger"
"Can't bind to local 8601 for debugger"
"Can't bind to local 8602 for debugger"
etc etc


alla fine pulendo la console esce scritto che l'applicazione è stata caricata, però quando la apro mi esce "Unfortunately, test1 has stopped"  :-(

Offline Luigi.Arena

  • Utente senior
  • ****
  • Post: 616
  • DACIA DUSTER 4X4 SUPER
  • Respect: +56
    • Mostra profilo
    • ArenaWebTest
  • Dispositivo Android:
    epad m009
  • Play Store ID:
    Luigi Arena
  • Sistema operativo:
    Windows 7
Re:Simil HelloWorld
« Risposta #7 il: 21 Novembre 2011, 16:39:27 CET »
0
Perciò arrivi alla schermata dove devi sbloccare l'emulatore con il lucchetto (per capirci) ?

Io nel tab console vedo questo:

Citazione
[2011-11-21 16:37:54 - testpressKey] ------------------------------
[2011-11-21 16:37:54 - testpressKey] Android Launch!
[2011-11-21 16:37:54 - testpressKey] adb is running normally.
[2011-11-21 16:37:54 - testpressKey] Performing luigi.android.it.TestpressKeyActivity activity launch
[2011-11-21 16:37:54 - testpressKey] Automatic Target Mode: launching new emulator with compatible AVD 'due.due'
[2011-11-21 16:37:54 - testpressKey] Launching a new emulator with Virtual Device 'due.due'
[2011-11-21 16:38:18 - testpressKey] New emulator found: emulator-5554
[2011-11-21 16:38:18 - testpressKey] Waiting for HOME ('android.process.acore') to be launched...
[2011-11-21 16:39:02 - testpressKey] HOME is up on device 'emulator-5554'
[2011-11-21 16:39:02 - testpressKey] Uploading testpressKey.apk onto device 'emulator-5554'
[2011-11-21 16:39:02 - testpressKey] Installing testpressKey.apk...
[2011-11-21 16:39:26 - testpressKey] Success!
[2011-11-21 16:39:26 - testpressKey] Starting activity luigi.android.it.TestpressKeyActivity on device emulator-5554
[2011-11-21 16:39:27 - testpressKey] ActivityManager: Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=luigi.android.it/.TestpressKeyActivity }

« Ultima modifica: 21 Novembre 2011, 16:41:25 CET da Luigi.Arena »
È stata trovata una soluzione al tuo problema?Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato .

Offline crack001

  • Nuovo arrivato
  • *
  • Post: 14
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    HTC Desire Z
  • Sistema operativo:
    Ubuntu 10.04
Re:Simil HelloWorld
« Risposta #8 il: 21 Novembre 2011, 16:45:04 CET »
0
Si certo, android parte, sblocco lo schermo e vado nel menu e faccio partire l'applicaazione, e mi da il secondo messaggio che ti ho scritto sopra...pero a me oltre a quei messaggi che restituisce l'emulatore, quelli che escono anche a te, mi si apre una scheda con scritto DDMS se non sbaglio, e mi da quei messaggi di errore sulla porta, forse e un problema di eclipse?

Offline Luigi.Arena

  • Utente senior
  • ****
  • Post: 616
  • DACIA DUSTER 4X4 SUPER
  • Respect: +56
    • Mostra profilo
    • ArenaWebTest
  • Dispositivo Android:
    epad m009
  • Play Store ID:
    Luigi Arena
  • Sistema operativo:
    Windows 7
Re:Simil HelloWorld
« Risposta #9 il: 21 Novembre 2011, 16:53:11 CET »
0
Prova a verificare le imposta dell'AVD.
Ma quando fai partire il progetto , lo fai partire in modalità debug(scargaffaggino verde) :-) ?
Oppure clicchi semplicemente sulla freccettina verde(ctrl + f11) ?
Prova a ricreare il progetto da 0 senza inserire nulla nella classe java.
È stata trovata una soluzione al tuo problema?Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato .

Offline crack001

  • Nuovo arrivato
  • *
  • Post: 14
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    HTC Desire Z
  • Sistema operativo:
    Ubuntu 10.04
Re:Simil HelloWorld
« Risposta #10 il: 21 Novembre 2011, 16:55:50 CET »
0
No aspetta, quando faccio partire il progetto lo mando in run direttamente, nn lo eseguo in debug...sbaglio forse questo? Cioe nn devo debuggarlo, mando run e lui lo carica sull'emulatore

Offline Luigi.Arena

  • Utente senior
  • ****
  • Post: 616
  • DACIA DUSTER 4X4 SUPER
  • Respect: +56
    • Mostra profilo
    • ArenaWebTest
  • Dispositivo Android:
    epad m009
  • Play Store ID:
    Luigi Arena
  • Sistema operativo:
    Windows 7
Re:Simil HelloWorld
« Risposta #11 il: 21 Novembre 2011, 17:02:25 CET »
0
E' corretto, era solo una mia curiosità.
Hai provato a creare un nuovo progetto con un pulsante senza nessun codice nella classe java ?
È stata trovata una soluzione al tuo problema?Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato .

Offline crack001

  • Nuovo arrivato
  • *
  • Post: 14
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    HTC Desire Z
  • Sistema operativo:
    Ubuntu 10.04
Re:Simil HelloWorld
« Risposta #12 il: 21 Novembre 2011, 17:06:17 CET »
0
Per progetto senza codice nella classe java intendi definire solo il pulsante nel codice xml? Te lo chiedo perche non mi e ancora tanto chiaro il collegamento tra xml e java xD cmq no nn ho provato, appena torno a casa vedo un po, anche se credo che sia un problema di eclipse visto che a te il codice funziona

Offline Luigi.Arena

  • Utente senior
  • ****
  • Post: 616
  • DACIA DUSTER 4X4 SUPER
  • Respect: +56
    • Mostra profilo
    • ArenaWebTest
  • Dispositivo Android:
    epad m009
  • Play Store ID:
    Luigi Arena
  • Sistema operativo:
    Windows 7
Re:Simil HelloWorld
« Risposta #13 il: 21 Novembre 2011, 17:13:21 CET »
0
Si intendo solo xml.
Io darei un occhio anche alla configurazione dell' AVD.
È stata trovata una soluzione al tuo problema?Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato .

Offline crack001

  • Nuovo arrivato
  • *
  • Post: 14
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    HTC Desire Z
  • Sistema operativo:
    Ubuntu 10.04
Re:Simil HelloWorld
« Risposta #14 il: 21 Novembre 2011, 18:46:23 CET »
0
Si intendo solo xml.
Io darei un occhio anche alla configurazione dell' AVD.

sono andato a controllare in AVD, ho solamente fatto un refresh e ora è partito tranquillamente, però quando parte l'applicazione mi dice comunque Unfortunately, test1 has stopped.

Su eclipse mi si apre un pannello di nome LogCat, e questo è quello che esce:

Codice: [Seleziona]
11-21 18:40:16.224: D/dalvikvm(537): Not late-enabling CheckJNI (already on)
11-21 18:40:18.264: D/AndroidRuntime(537): Shutting down VM
11-21 18:40:18.264: W/dalvikvm(537): threadid=1: thread exiting with uncaught exception (group=0x409951f8)
11-21 18:40:18.284: E/AndroidRuntime(537): FATAL EXCEPTION: main
11-21 18:40:18.284: E/AndroidRuntime(537): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.Test1/com.example.Test1.Test1Activity}: java.lang.ClassCastException: android.widget.TextView cannot be cast to android.widget.Button
11-21 18:40:18.284: E/AndroidRuntime(537):         at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1955)
11-21 18:40:18.284: E/AndroidRuntime(537):         at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1980)
11-21 18:40:18.284: E/AndroidRuntime(537):         at android.app.ActivityThread.access$600(ActivityThread.java:122)
11-21 18:40:18.284: E/AndroidRuntime(537):         at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1146)
11-21 18:40:18.284: E/AndroidRuntime(537):         at android.os.Handler.dispatchMessage(Handler.java:99)
11-21 18:40:18.284: E/AndroidRuntime(537):         at android.os.Looper.loop(Looper.java:137)
11-21 18:40:18.284: E/AndroidRuntime(537):         at android.app.ActivityThread.main(ActivityThread.java:4340)
11-21 18:40:18.284: E/AndroidRuntime(537):         at java.lang.reflect.Method.invokeNative(Native Method)
11-21 18:40:18.284: E/AndroidRuntime(537):         at java.lang.reflect.Method.invoke(Method.java:511)
11-21 18:40:18.284: E/AndroidRuntime(537):         at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
11-21 18:40:18.284: E/AndroidRuntime(537):         at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
11-21 18:40:18.284: E/AndroidRuntime(537):         at dalvik.system.NativeStart.main(Native Method)
11-21 18:40:18.284: E/AndroidRuntime(537): Caused by: java.lang.ClassCastException: android.widget.TextView cannot be cast to android.widget.Button
11-21 18:40:18.284: E/AndroidRuntime(537):         at com.example.Test1.Test1Activity.onCreate(Test1Activity.java:17)
11-21 18:40:18.284: E/AndroidRuntime(537):         at android.app.Activity.performCreate(Activity.java:4465)
11-21 18:40:18.284: E/AndroidRuntime(537):         at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)
11-21 18:40:18.284: E/AndroidRuntime(537):         at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1919)
11-21 18:40:18.284: E/AndroidRuntime(537):         ... 11 more

però io non faccio nessun cast (Button) ad una TextView...ora mi chiedo, perchè a te funziona tranquillamente? xD