CERCA
PER MODELLO
FullScreen Chatbox! :)

Utente del giorno: Steamblade con ben 2 Thanks ricevuti nelle ultime 24 ore
Utente della settimana: carotix con ben 5 Thanks ricevuti negli ultimi sette giorni
Utente del mese: megthebest con ben 19 Thanks ricevuti nell'ultimo mese

Visualizzazione dei risultati da 1 a 4 su 4
Discussione:

Applicazione chiusa inaspettatamente per colpa di un (EditText) findViewById

Se questa discussione ti è stata utile, ti preghiamo di lasciare un messaggio di feedback in modo che possa essere preziosa in futuro anche per altri utenti come te!
  1. #1
    Baby Droid


    Registrato dal
    May 2010
    Messaggi
    4

    Ringraziamenti
    0
    Ringraziato 0 volte in 0 Posts
    Predefinito

    Applicazione chiusa inaspettatamente per colpa di un (EditText) findViewById

    stavo provando a fare un'applicazione giocattolo per testare alcune cose:

    essenzialmente una vista con un campo dove scrivere un testo con un pulsante da clickare per fare qualcosa con il testo inserito (ad esempio poppare un toast con il testo inserito)

    ecco il codice
     
    1
    2
    3
    public class hello extends Activity {
    4
        
    5
        
    6
        
    7
        private EditText labelEditable;
    8
        
    9
        /** Called when the activity is first created. */
    10
        @Override
    11
        public void onCreate(Bundle savedInstanceState) {
    12
            super.onCreate(savedInstanceState);
    13
            setContentView(R.layout.main);
    14
            
    15
            //mappatura dei componenti della vista di questa attività
    16
            Button okPicker = (Button) findViewById(R.id.ok);
    17
            Button annPicker = (Button) findViewById(R.id.ann);
    18
            labelEditable = (EditText) findViewById(R.id.label); 
    19
            
    20
            okPicker.setOnClickListener(new View.OnClickListener() {
    21
                public void onClick(View v) {
    22
                    Toast.makeText(getApplicationContext(),labelEditable.getText(),//((TextView) view).getText(),
    23
                          Toast.LENGTH_SHORT).show();
    24
                }
    25
            });
    26
    27
        }
    28
        
    29
        
    30
    }
    31
    32


    quì invece il foglio di layout

    40
     
    1
    2
    3
    <?xml version="1.0" encoding="utf-8"?>
    4
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    5
        android:layout_width="fill_parent"
    6
        android:layout_height="fill_parent">
    7
    8
        <TextView
    9
            android:id="@+id/label"
    10
            android:layout_width="fill_parent"
    11
            android:layout_height="wrap_content"
    12
            android:text="Type here:"/>
    13
    14
        <EditText
    15
            android:id="@+id/entry"
    16
            android:layout_width="fill_parent"
    17
            android:layout_height="wrap_content"
    18
            android:background="@android:drawable/editbox_background"
    19
            android:layout_below="@id/label"/>
    20
    21
        <Button
    22
            android:id="@+id/ok"
    23
            android:layout_width="wrap_content"
    24
            android:layout_height="wrap_content"
    25
            android:layout_below="@id/entry"
    26
            android:layout_alignParentRight="true"
    27
            android:layout_marginLeft="10dip"
    28
            android:text="OK" />
    29
    30
        <Button
    31
            android:id="@+id/ann"
    32
            android:layout_width="wrap_content"
    33
            android:layout_height="wrap_content"
    34
            android:layout_toLeftOf="@id/ok"
    35
            android:layout_alignTop="@id/ok"
    36
            android:text="Cancel" />
    37
    38
    </RelativeLayout>
    39
    40


    il problema si presenta a runtime con il classico Sorry, the application has stopped unexpectedly, e se si commenta quelsta linea

    3
     
    1
    2
     labelEditable = (EditText) findViewById(R.id.label); 
    3


    invece l'applicazione funziona senza errori.

    Riuscite a capire dove stò sbagliando?

  2.  
  3. #2
    Administrator L'avatar di Andrea


    Registrato dal
    Nov 2008
    Messaggi
    3,368
    Smartphone
    Nexus S, myTouch Slide 4g

    Ringraziamenti
    143
    Ringraziato 880 volte in 323 Posts
    Predefinito

    Togli quel getApplicationContext e metti hello.this

    in pratica il codice diventerebbe:
    8
     
    1
    2
    okPicker.setOnClickListener(new View.OnClickListener() {  
    3
                public void onClick(View v) {  
    4
                    Toast.makeText(hello.this,labelEditable.getText(),//((TextView) view).getText(),  
    5
                          Toast.LENGTH_SHORT).show();  
    6
                }  
    7
            });  
    8

    Twitter @veke87

  4. #3
    Shu
    Shu non è in linea
    Androidiano


    Registrato dal
    Aug 2009
    Messaggi
    158

    Ringraziamenti
    6
    Ringraziato 17 volte in 13 Posts
    Predefinito

    Nel tuo layout, label è un TextView, non un EditText. Forse volevi usare R.id.entry al posto di R.id.label

  5. #4
    Baby Droid


    Registrato dal
    May 2010
    Messaggi
    4

    Ringraziamenti
    0
    Ringraziato 0 volte in 0 Posts
    Predefinito

    si, è vero...ho missato l'id giusto,grazie mille^^

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire risposte
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Torna su
Privacy Policy