Autore Topic: crash nel passaggio da portrait a landscape  (Letto 946 volte)

Offline bbruno

  • Nuovo arrivato
  • *
  • Post: 17
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Galaxy 5 - I5500
  • Play Store ID:
    Bruno Pistone
  • Sistema operativo:
    Windows 7
crash nel passaggio da portrait a landscape
« il: 06 Dicembre 2011, 19:35:05 CET »
0
buonasera a tutti, la mia app è formata da uno spinner, da un edittext, da una text view e da alcuni bottoni. quando sullo spinner faccio una certa selezione, l'hint dentro l'edittext contiene un certo messaggio e se inserisco un numero e premo un bottone, mi appare scritto un testo nella textview appunto. quando passo in modalità landscape, l'activity viene ricreata, quindi nello spinner appare la selezione che avevo fatto in precedenza, però l'edittext e l'hint sono settati con la selezione di default. ho letto il tutorial solo che non sono riuscito a risolvere. vorrei che dopo aver fatto le azioni scritte ad inizio post, quando passo in modalità landscape l'applicazione riprenda da dove era in modalità portrait

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:crash nel passaggio da portrait a landscape
« Risposta #1 il: 07 Dicembre 2011, 08:55:11 CET »
0
Per darti una mano serve almeno:
1) LogCat dell'errore
2) Codice che gestisce la rotazione
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline bbruno

  • Nuovo arrivato
  • *
  • Post: 17
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Galaxy 5 - I5500
  • Play Store ID:
    Bruno Pistone
  • Sistema operativo:
    Windows 7
Re:crash nel passaggio da portrait a landscape
« Risposta #2 il: 07 Dicembre 2011, 11:38:36 CET »
0
non so quale riga del logcat faccia riferimento. ti allego il file con gli errori che compaiono una volta che seleziono una posizione dallo spinner e ruoto lo schermo

Offline bbruno

  • Nuovo arrivato
  • *
  • Post: 17
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Galaxy 5 - I5500
  • Play Store ID:
    Bruno Pistone
  • Sistema operativo:
    Windows 7
Re:crash nel passaggio da portrait a landscape
« Risposta #3 il: 07 Dicembre 2011, 11:40:27 CET »
0
quello che vorrei fare è salvare la posizione corrente dello spinner tramite onSaveInstanceState() e riprenderla tramite OnRestoreInstanceState()

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:crash nel passaggio da portrait a landscape
« Risposta #4 il: 07 Dicembre 2011, 11:43:00 CET »
0
Allega il LogCat testuale, l'immagine è scomoda e per lo più parziale.
In più serve anche il codice del cambio orientazione, altrimenti è dura indovinare cosa hai scritto di sbagliato.
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline bbruno

  • Nuovo arrivato
  • *
  • Post: 17
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Galaxy 5 - I5500
  • Play Store ID:
    Bruno Pistone
  • Sistema operativo:
    Windows 7
Re:crash nel passaggio da portrait a landscape
« Risposta #5 il: 07 Dicembre 2011, 11:58:11 CET »
0
Codice: [Seleziona]
12-07 11:51:32.845: ERROR/WindowManager(5418): Activity com.developer.bruno.Convertitore has leaked window android.widget.TextView$HandleView@40578880 that was originally added here
12-07 11:51:32.845: ERROR/WindowManager(5418): android.view.WindowLeaked: Activity com.developer.bruno.Convertitore has leaked window android.widget.TextView$HandleView@40578880 that was originally added here
12-07 11:51:32.845: ERROR/WindowManager(5418):     at android.view.ViewRoot.<init>(ViewRoot.java:259)
12-07 11:51:32.845: ERROR/WindowManager(5418):     at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:148)
12-07 11:51:32.845: ERROR/WindowManager(5418):     at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:91)
12-07 11:51:32.845: ERROR/WindowManager(5418):     at android.view.Window$LocalWindowManager.addView(Window.java:465)
12-07 11:51:32.845: ERROR/WindowManager(5418):     at android.widget.PopupWindow.invokePopup(PopupWindow.java:907)
12-07 11:51:32.845: ERROR/WindowManager(5418):     at android.widget.PopupWindow.showAtLocation(PopupWindow.java:767)
12-07 11:51:32.845: ERROR/WindowManager(5418):     at android.widget.TextView$HandleView.show(TextView.java:7861)
12-07 11:51:32.845: ERROR/WindowManager(5418):     at android.widget.TextView$HandleView.moveTo(TextView.java:7928)
12-07 11:51:32.845: ERROR/WindowManager(5418):     at android.widget.TextView$HandleView.positionAtCursor(TextView.java:8015)
12-07 11:51:32.845: ERROR/WindowManager(5418):     at android.widget.TextView$InsertionPointCursorController.updatePosition(TextView.java:8076)
12-07 11:51:32.845: ERROR/WindowManager(5418):     at android.widget.TextView$InsertionPointCursorController.show(TextView.java:8036)
12-07 11:51:32.845: ERROR/WindowManager(5418):     at android.widget.TextView.onTapUpEvent(TextView.java:6796)
12-07 11:51:32.845: ERROR/WindowManager(5418):     at android.widget.TextView.onTouchEvent(TextView.java:6894)
12-07 11:51:32.845: ERROR/WindowManager(5418):     at android.view.View.dispatchTouchEvent(View.java:3901)
12-07 11:51:32.845: ERROR/WindowManager(5418):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:942)
12-07 11:51:32.845: ERROR/WindowManager(5418):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:942)
12-07 11:51:32.845: ERROR/WindowManager(5418):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:942)
12-07 11:51:32.845: ERROR/WindowManager(5418):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:942)
12-07 11:51:32.845: ERROR/WindowManager(5418):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:942)
12-07 11:51:32.845: ERROR/WindowManager(5418):     at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1737)
12-07 11:51:32.845: ERROR/WindowManager(5418):     at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1153)
12-07 11:51:32.845: ERROR/WindowManager(5418):     at android.app.Activity.dispatchTouchEvent(Activity.java:2096)
12-07 11:51:32.845: ERROR/WindowManager(5418):     at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1721)
12-07 11:51:32.845: ERROR/WindowManager(5418):     at android.view.ViewRoot.deliverPointerEvent(ViewRoot.java:2200)
12-07 11:51:32.845: ERROR/WindowManager(5418):     at android.view.ViewRoot.handleMessage(ViewRoot.java:1884)
12-07 11:51:32.845: ERROR/WindowManager(5418):     at android.os.Handler.dispatchMessage(Handler.java:99)
12-07 11:51:32.845: ERROR/WindowManager(5418):     at android.os.Looper.loop(Looper.java:130)
12-07 11:51:32.845: ERROR/WindowManager(5418):     at android.app.ActivityThread.main(ActivityThread.java:3835)
12-07 11:51:32.845: ERROR/WindowManager(5418):     at java.lang.reflect.Method.invokeNative(Native Method)
12-07 11:51:32.845: ERROR/WindowManager(5418):     at java.lang.reflect.Method.invoke(Method.java:507)
12-07 11:51:32.845: ERROR/WindowManager(5418):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:858)
12-07 11:51:32.845: ERROR/WindowManager(5418):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
12-07 11:51:32.845: ERROR/WindowManager(5418):     at dalvik.system.NativeStart.main(Native Method)
12-07 11:51:35.075: ERROR/AndroidRuntime(5418): FATAL EXCEPTION: main
12-07 11:51:35.075: ERROR/AndroidRuntime(5418): java.lang.IllegalArgumentException: View not attached to window manager
12-07 11:51:35.075: ERROR/AndroidRuntime(5418):     at android.view.WindowManagerImpl.findViewLocked(WindowManagerImpl.java:355)
12-07 11:51:35.075: ERROR/AndroidRuntime(5418):     at android.view.WindowManagerImpl.removeView(WindowManagerImpl.java:200)
12-07 11:51:35.075: ERROR/AndroidRuntime(5418):     at android.view.Window$LocalWindowManager.removeView(Window.java:473)
12-07 11:51:35.075: ERROR/AndroidRuntime(5418):     at android.widget.PopupWindow.dismiss(PopupWindow.java:1138)
12-07 11:51:35.075: ERROR/AndroidRuntime(5418):     at android.widget.TextView$HandleView.hide(TextView.java:7866)
12-07 11:51:35.075: ERROR/AndroidRuntime(5418):     at android.widget.TextView$InsertionPointCursorController.hide(TextView.java:8042)
12-07 11:51:35.075: ERROR/AndroidRuntime(5418):     at android.widget.TextView$InsertionPointCursorController$1.run(TextView.java:8027)
12-07 11:51:35.075: ERROR/AndroidRuntime(5418):     at android.os.Handler.handleCallback(Handler.java:587)
12-07 11:51:35.075: ERROR/AndroidRuntime(5418):     at android.os.Handler.dispatchMessage(Handler.java:92)
12-07 11:51:35.075: ERROR/AndroidRuntime(5418):     at android.os.Looper.loop(Looper.java:130)
12-07 11:51:35.075: ERROR/AndroidRuntime(5418):     at android.app.ActivityThread.main(ActivityThread.java:3835)
12-07 11:51:35.075: ERROR/AndroidRuntime(5418):     at java.lang.reflect.Method.invokeNative(Native Method)
12-07 11:51:35.075: ERROR/AndroidRuntime(5418):     at java.lang.reflect.Method.invoke(Method.java:507)
12-07 11:51:35.075: ERROR/AndroidRuntime(5418):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:858)
12-07 11:51:35.075: ERROR/AndroidRuntime(5418):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
12-07 11:51:35.075: ERROR/AndroidRuntime(5418):     at dalvik.system.NativeStart.main(Native Method)

Offline bbruno

  • Nuovo arrivato
  • *
  • Post: 17
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Galaxy 5 - I5500
  • Play Store ID:
    Bruno Pistone
  • Sistema operativo:
    Windows 7
Re:crash nel passaggio da portrait a landscape
« Risposta #6 il: 07 Dicembre 2011, 11:59:30 CET »
0
per quanto riguarda il codice del cambio di orientazione, io ho definito il layout portrait e quello landscape, però nell'activity non ho scritto nulla riguardo al cambio

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:crash nel passaggio da portrait a landscape
« Risposta #7 il: 07 Dicembre 2011, 12:02:32 CET »
0
per quanto riguarda il codice del cambio di orientazione, io ho definito il layout portrait e quello landscape, però nell'activity non ho scritto nulla riguardo al cambio

Partendo dal presupposto che c'è un errore nel codice, come ti ho detto sopra se non lo alleghi è quasi impossibile dirti dove si trova.
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline bbruno

  • Nuovo arrivato
  • *
  • Post: 17
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Galaxy 5 - I5500
  • Play Store ID:
    Bruno Pistone
  • Sistema operativo:
    Windows 7
Re:crash nel passaggio da portrait a landscape
« Risposta #8 il: 07 Dicembre 2011, 12:06:05 CET »
0
questo era il main della modalità portrait

Codice (XML): [Seleziona]
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:id="@+id/RelativeLayout1"
   android:layout_width="fill_parent"
   android:layout_height="fill_parent"
   android:background="@drawable/binary"
   android:orientation="vertical" >
 
        <Spinner
       android:id="@+id/sMenu"
       android:layout_width="fill_parent"
       android:layout_height="wrap_content"
       android:layout_alignParentTop="true"
       android:layout_centerHorizontal="true"
       android:layout_gravity="center"
       android:prompt="@string/base" />





        <RelativeLayout
            android:id="@+id/RelativeLayout2"
            android:layout_width="230dp"
            android:layout_height="fill_parent"
            android:layout_alignParentLeft="true"
            android:layout_alignParentRight="true"
            android:layout_below="@+id/sMenu"
            android:background="@drawable/binary"
            android:orientation="vertical" >
       
            <EditText
       android:id="@+id/etDisplay"
       android:layout_width="150dp"
       android:layout_height="wrap_content"
       android:layout_below="@+id/sMenu"
       android:layout_centerHorizontal="true"
       android:layout_gravity="center"
       android:hint="Es: 666" />

    <Button
       android:id="@+id/bDec"
       android:layout_width="130dp"
       android:layout_height="wrap_content"
       android:layout_alignParentBottom="true"
       android:layout_alignParentLeft="true"
       android:layout_marginBottom="88dp"
       android:text="Decimal"
       android:textSize="15dp" />

    <Button
       android:id="@+id/bBin"
       android:layout_width="130dp"
       android:layout_height="wrap_content"
       android:layout_alignBaseline="@+id/bDec"
       android:layout_alignBottom="@+id/bDec"
       android:layout_alignParentRight="true"
       android:text="Binary"
       android:textSize="15dp" />

    <Button
       android:id="@+id/bOtt"
       android:layout_width="130dp"
       android:layout_height="wrap_content"
       android:layout_alignParentLeft="true"
       android:layout_below="@+id/bBin"
       android:text="Octal"
       android:textSize="15dp" />

    <Button
       android:id="@+id/bHex"
       android:layout_width="130dp"
       android:layout_height="wrap_content"
       android:layout_alignParentRight="true"
       android:layout_below="@+id/bBin"
       android:text="Hexadecimal"
       android:textSize="15dp" />

    <CheckedTextView
       android:id="@+id/tvSchermo"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_below="@+id/etDisplay"
       android:layout_centerHorizontal="true"
       android:layout_marginTop="20dp"
       android:background="#000000"
       android:textColor="#33CC00"
       android:textSize="35dp" />

    </RelativeLayout>

            <LinearLayout
       android:id="@+id/adslayout"
       android:layout_width="fill_parent"
       android:layout_height="90dp"
       android:layout_alignParentBottom="true"
       android:layout_alignParentLeft="true"
       android:layout_alignTop="@+id/bOtt"
       android:orientation="vertical" >

    </LinearLayout>
</RelativeLayout>

questo è quello del landscape

Codice (XML): [Seleziona]
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:id="@+id/RelativeLayout1"
   android:layout_width="fill_parent"
   android:layout_height="fill_parent"
   android:background="@drawable/binary"
   android:orientation="vertical" >
 
        <Spinner
       android:id="@+id/sMenu"
       android:layout_width="fill_parent"
       android:layout_height="wrap_content"
       android:layout_alignParentTop="true"
       android:layout_centerHorizontal="true"
       android:layout_gravity="center"
       android:prompt="@string/base" />



        <RelativeLayout
            android:id="@+id/RelativeLayout2"
            android:layout_width="230dp"
            android:layout_height="fill_parent"
            android:layout_alignParentLeft="true"
            android:layout_alignParentRight="true"
            android:layout_below="@+id/sMenu"
            android:background="@drawable/binary"
            android:orientation="vertical" >
       
            <EditText
       android:id="@+id/etDisplay"
       android:layout_width="150dp"
       android:layout_height="wrap_content"
       android:layout_below="@+id/sMenu"
       android:layout_centerHorizontal="true"
       android:layout_gravity="center"
       android:hint="Es: 666" />

    <Button
       android:id="@+id/bDec"
       android:layout_width="130dp"
       android:layout_height="wrap_content"
       android:layout_alignParentBottom="true"
       android:layout_alignParentLeft="true"
       android:layout_marginBottom="88dp"
       android:text="Decimal"
       android:textSize="15dp" />

    <Button
       android:id="@+id/bBin"
       android:layout_width="130dp"
       android:layout_height="wrap_content"
       android:layout_alignBaseline="@+id/bDec"
       android:layout_alignBottom="@+id/bDec"
       android:layout_alignParentRight="true"
       android:text="Binary"
       android:textSize="15dp" />

    <Button
       android:id="@+id/bOtt"
       android:layout_width="130dp"
       android:layout_height="wrap_content"
       android:layout_alignParentLeft="true"
       android:layout_below="@+id/bBin"
       android:text="Octal"
       android:textSize="15dp" />

    <Button
       android:id="@+id/bHex"
       android:layout_width="130dp"
       android:layout_height="wrap_content"
       android:layout_alignParentRight="true"
       android:layout_below="@+id/bBin"
       android:text="Hexadecimal"
       android:textSize="15dp" />

    <CheckedTextView
       android:id="@+id/tvSchermo"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_below="@+id/etDisplay"
       android:layout_centerHorizontal="true"
       android:layout_marginTop="20dp"
       android:background="#000000"
       android:textColor="#33CC00"
       android:textSize="35dp" />

    </RelativeLayout>

            <LinearLayout
       android:id="@+id/adslayout"
       android:layout_width="fill_parent"
       android:layout_height="90dp"
       android:layout_alignParentBottom="true"
       android:layout_alignParentLeft="true"
       android:layout_alignTop="@+id/bOtt"
       android:orientation="vertical" >

    </LinearLayout>
           
</RelativeLayout>

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:crash nel passaggio da portrait a landscape
« Risposta #9 il: 07 Dicembre 2011, 12:15:41 CET »
0
Anche quello dell'activity, a limite togliendo le parti che non interagiscono con il layout.
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline bbruno

  • Nuovo arrivato
  • *
  • Post: 17
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Galaxy 5 - I5500
  • Play Store ID:
    Bruno Pistone
  • Sistema operativo:
    Windows 7
Re:crash nel passaggio da portrait a landscape
« Risposta #10 il: 07 Dicembre 2011, 12:21:12 CET »
0
Questa è la parte in cui ho definito il comportamento dello spinner e ciò che accade quando premo un bottone

Codice (Java): [Seleziona]
decimale = (Button) findViewById(R.id.bDec);
        binario = (Button) findViewById (R.id.bBin);
        ottale = (Button) findViewById (R.id.bOtt);
        esadec  =(Button) findViewById (R.id.bHex);
        numero = (EditText) findViewById (R.id.etDisplay);
        display = (TextView) findViewById (R.id.tvSchermo);
        spinner = (Spinner) findViewById (R.id.sMenu);
       
        AdView adView = new AdView(this, AdSize.BANNER, "XXXXXX");
        LinearLayout layout = (LinearLayout)findViewById(R.id.adslayout);
        layout.addView(adView);
        adView.loadAd(new AdRequest());

       
        ArrayAdapter adapter = ArrayAdapter.createFromResource(this, R.array.base, android.R.layout.simple_spinner_item);
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        spinner.setAdapter(adapter);

       
        numero.setOnClickListener(new View.OnClickListener() {
                       
                        public void onClick(View v) {
                                // TODO Auto-generated method stub
                       
                                if(currentMetod.equals(base[0]))
                                {
                                        numero.setImeOptions(EditorInfo.IME_ACTION_DONE);
                                        numero.setHint("Es: 666");
                                        numero.setInputType(InputType.TYPE_CLASS_PHONE);
                                        c=0;
                                }
                               
                                if(currentMetod.equals(base[1]))
                                {
                                        numero.setImeOptions(EditorInfo.IME_ACTION_DONE);
                                        numero.setHint("Es: 1010");
                                        numero.setInputType(InputType.TYPE_CLASS_PHONE);
                                        c=1;
                                }
                               
                                if(currentMetod.equals(base[2]))
                                {
                                        numero.setImeOptions(EditorInfo.IME_ACTION_DONE);
                                        numero.setHint("Es: 10");
                                        numero.setInputType(InputType.TYPE_CLASS_PHONE);
                                        c=2;
                                }
                               
                                if(currentMetod.equals(base[3]))
                                {
                                        numero.setImeOptions(EditorInfo.IME_ACTION_DONE);
                                        numero.setHint("Es: 2A");
                                        numero.setInputType(InputType.TYPE_TEXT_FLAG_CAP_CHARACTERS);
                                        c=3;
                                }
                        }
                });
       
        spinner.setOnItemSelectedListener(new OnItemSelectedListener() {
               
                public void onItemSelected(AdapterView<?> parent, View v, int position, long id3) {
                    currentMetod = (String) parent.getAdapter().getItem(position);         
        }

                        public void onNothingSelected(AdapterView<?> arg0) {
                                // TODO Auto-generated method stub
                               
                        }
                });
decimale.setOnClickListener(new View.OnClickListener() {
                       
                        public void onClick(View arg0) {
                                // TODO Auto-generated method stub
                               
                                display.setText("");
                               
                                Editable stringEditable = numero.getText();
                                nuovo = stringEditable.toString();
                               
                                for(char c : nuovo.toCharArray())
                                {
                                        if(c<48)
                                        {
                                                Toast.makeText(Convertitore.this, "Error: The type is not valid", Toast.LENGTH_SHORT).show();
                                                return;
                                        }
                                       
                                        if(c>122)
                                        {
                                                Toast.makeText(Convertitore.this, "Error: The type is not valid", Toast.LENGTH_SHORT).show();
                                                return;
                                        }
                                }
                               
                                if(currentMetod.equals(base[0]))
                                {
                                        display.setText("");
                                        if(nuovo.equals(""))                                              /**se nell'EditText non ci sta scritto nulla,numero2 = 0**/
                                        {
                                        Toast t = Toast.makeText(Convertitore.this, "Type a number", Toast.LENGTH_SHORT);
                                        t.show();
                                        return;
                                        }else{
                                        display.setText(nuovo);
                                        return;}
                                                }
                               
                                if(currentMetod.equals(base[1]))
                                {
                                        display.setText("");
                                        if(nuovo.equals(""))                                              /**se nell'EditText non ci sta scritto nulla,numero2 = 0**/
                                        {
                                        Toast t = Toast.makeText(Convertitore.this, "Type a number from 0 to 1", Toast.LENGTH_SHORT);
                                        t.show();
                                        return;
                                        }
                                        for(char c : nuovo.toCharArray())
                                        {
                                                if(c>49)
                                                {
                                                        Toast.makeText(Convertitore.this, "Error: The type is not valid", Toast.LENGTH_SHORT).show();
                                                        return;
                                                }
                                        }
                                                numero2=Integer.parseInt(nuovo);
                                               
                                                int i=1,m=0,d=0,l=0;
                                                while(numero2>0)
                                                {      
                                                        m=(numero2%10);
                                                    numero2=(numero2/10);
                                                    l=m*i;
                                                    d=d+l;
                                                    i=i*2;
                                                }
                                               
                                                nuovo=Integer.toString(d);
                                                display.setText(nuovo);

                                        }
                                       
                                        if(currentMetod.equals(base[2]))
                                        {
                                                display.setText("");
                                                if(nuovo.equals(""))                                              /**se nell'EditText non ci sta scritto nulla,numero2 = 0**/
                                                {
                                                Toast t = Toast.makeText(Convertitore.this, "Type a number from 0 to 7", Toast.LENGTH_SHORT);
                                                t.show();
                                                return;
                                                }
                                                for(char c : nuovo.toCharArray())
                                                {
                                                        if(c>55)
                                                        {
                                                                Toast.makeText(Convertitore.this, "Error: The type is not valid", Toast.LENGTH_SHORT).show();
                                                                return;
                                                        }
                                                }
                                                       
                                                        numero2=Integer.parseInt(nuovo);
                                                       
                                                        int i=1,m=0,d=0,l=0;
                                                        while(numero2>0)
                                                        {      
                                                                m=(numero2%10);
                                                            numero2=(numero2/10);
                                                            l=m*i;
                                                            d=d+l;
                                                            i=i*8;
                                                        }
                                                       
                                                        nuovo=Integer.toString(d);
                                                        display.setText(nuovo);
                                          }    
                                               
                                                if(currentMetod.equals(base[3]))
                                                {
                                                        display.setText("");
                                                        if(nuovo.equals(""))                                              /**se nell'EditText non ci sta scritto nulla,numero2 = 0**/
                                                        {
                                                        Toast t = Toast.makeText(Convertitore.this, "Type a number from 0 to 9\n or a character from A to F", Toast.LENGTH_SHORT);
                                                        t.show();
                                                        return;
                                                        }
                                                        for(char c : nuovo.toCharArray())
                                                        {
                                                                if(c>70)
                                                                {
                                                                        Toast.makeText(Convertitore.this, "Error: The type is not valid", Toast.LENGTH_SHORT).show();
                                                                        return;
                                                                }
                                                        }
                                                               
                                                                numero2=Integer.parseInt(nuovo, 16);
                                                                nuovo=Integer.toString(numero2);
                                                                display.setText(nuovo);
                                                }
                        }
                });

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:crash nel passaggio da portrait a landscape
« Risposta #11 il: 07 Dicembre 2011, 12:41:55 CET »
0
Ancora non ho chiara la situazione e il codice è ancora troppo parziale.

Se hai problemi a postarlo qua in un forum pubblico, posso consigliarti cosa fare: metti a tappeto nel codice dei punti di controllo con Log.i dove logghi a che punto è arrivao il codice. Poi riproduci l'errore. Individuando tra quali punti di controllo avviene l'errore, dovresti riuscire ad isolare qual'è la riga incriminata.
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline bbruno

  • Nuovo arrivato
  • *
  • Post: 17
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Galaxy 5 - I5500
  • Play Store ID:
    Bruno Pistone
  • Sistema operativo:
    Windows 7
Re:crash nel passaggio da portrait a landscape
« Risposta #12 il: 07 Dicembre 2011, 12:47:43 CET »
0
no ma il codice per la maggiore è questo, ci stanno altri bottoni ma per la maggiore le funzioni invocate sono le stesse di quelle che ho postato prima. inoltre mi sono dimenticato di postare

Codice (Java): [Seleziona]
@Override
        protected void onSaveInstanceState(Bundle outState) {
         // TODO Auto-generated method stub
         outState.putString("TEXT", (String)display.getText());
         super.onSaveInstanceState(outState);
        }
       
        @Override
        protected void onRestoreInstanceState(Bundle savedInstanceState) {
         // TODO Auto-generated method stub
         display.setText(savedInstanceState.getString("TEXT"));
         super.onRestoreInstanceState(savedInstanceState);
        }

questo per non perdere i dati della textview, e vorrei, sempre all'interno di onsaveinstancestate(), salvare la posizione dello spinner, in modo da poterlo riprendere quando ruoto lo schermo, perchè il problema è quello

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:crash nel passaggio da portrait a landscape
« Risposta #13 il: 07 Dicembre 2011, 14:56:07 CET »
0
Credo sia utile vedere il codice degli eventi dell'activity(oncreate ecc.....)
È stata trovata una soluzione al tuo problema?Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato .

Offline bbruno

  • Nuovo arrivato
  • *
  • Post: 17
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Galaxy 5 - I5500
  • Play Store ID:
    Bruno Pistone
  • Sistema operativo:
    Windows 7
Re:crash nel passaggio da portrait a landscape
« Risposta #14 il: 07 Dicembre 2011, 14:59:26 CET »
0
Codice (Java): [Seleziona]
package com.developer.bruno;

import android.app.Activity;
import android.content.Context;
import android.content.SharedPreferences;
import android.content.res.Configuration;
import android.os.Bundle;
import android.os.Parcelable;
import android.text.Editable;
import android.text.InputType;
import android.util.Log;
import android.view.View;
import android.view.inputmethod.EditorInfo;
import android.view.inputmethod.InputMethodManager;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast;
import com.google.ads.*;


public class Convertitore extends Activity {
        /** Called when the activity is first created. */
        String nuovo;
        int numero2,position;
        Button decimale, binario, ottale, esadec;
        TextView display;
        EditText numero;
        String [] base = {"Decimal", "Binary", "Octal", "Hexadecimal"};
        Spinner spinner;
        String currentMetod;

       
        @Override
    public void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
       
        decimale = (Button) findViewById(R.id.bDec);
        binario = (Button) findViewById (R.id.bBin);
        ottale = (Button) findViewById (R.id.bOtt);
        esadec  =(Button) findViewById (R.id.bHex);
        numero = (EditText) findViewById (R.id.etDisplay);
        display = (TextView) findViewById (R.id.tvSchermo);
        spinner = (Spinner) findViewById (R.id.sMenu);
       
        AdView adView = new AdView(this, AdSize.BANNER, "XXXXXXXXXXXX");
        LinearLayout layout = (LinearLayout)findViewById(R.id.adslayout);
        layout.addView(adView);
        adView.loadAd(new AdRequest());

       
        ArrayAdapter adapter = ArrayAdapter.createFromResource(this, R.array.base, android.R.layout.simple_spinner_item);
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        spinner.setAdapter(adapter);

       
        numero.setOnClickListener(new View.OnClickListener() {
                       
                        public void onClick(View v) {
                                // TODO Auto-generated method stub
                       
                                if(currentMetod.equals(base[0]))
                                {
                                        numero.setImeOptions(EditorInfo.IME_ACTION_DONE);
                                        numero.setHint("Es: 666");
                                        numero.setInputType(InputType.TYPE_CLASS_PHONE);
                                }
                               
                                if(currentMetod.equals(base[1]))
                                {
                                        numero.setImeOptions(EditorInfo.IME_ACTION_DONE);
                                        numero.setHint("Es: 1010");
                                        numero.setInputType(InputType.TYPE_CLASS_PHONE);
                                }
                               
                                if(currentMetod.equals(base[2]))
                                {
                                        numero.setImeOptions(EditorInfo.IME_ACTION_DONE);
                                        numero.setHint("Es: 10");
                                        numero.setInputType(InputType.TYPE_CLASS_PHONE);
                                }
                               
                                if(currentMetod.equals(base[3]))
                                {
                                        numero.setImeOptions(EditorInfo.IME_ACTION_DONE);
                                        numero.setHint("Es: 2A");
                                        numero.setInputType(InputType.TYPE_TEXT_FLAG_CAP_CHARACTERS);
                                }
                        }
                });
       
        spinner.setOnItemSelectedListener(new OnItemSelectedListener() {
               
                public void onItemSelected(AdapterView<?> parent, View v, int position, long id3) {
                    currentMetod = (String) parent.getAdapter().getItem(position);         
        }

                        public void onNothingSelected(AdapterView<?> arg0) {
                                // TODO Auto-generated method stub
                               
                        }
                });
               
        decimale.setOnClickListener(new View.OnClickListener() {
                       
                        public void onClick(View arg0) {
                                // TODO Auto-generated method stub
                               
                                display.setText("");
                               
                                Editable stringEditable = numero.getText();
                                nuovo = stringEditable.toString();
                               
                                for(char c : nuovo.toCharArray())
                                {
                                        if(c<48)
                                        {
                                                Toast.makeText(Convertitore.this, "Error: The type is not valid", Toast.LENGTH_SHORT).show();
                                                return;
                                        }
                                       
                                        if(c>122)
                                        {
                                                Toast.makeText(Convertitore.this, "Error: The type is not valid", Toast.LENGTH_SHORT).show();
                                                return;
                                        }
                                }
                               
                                if(currentMetod.equals(base[0]))
                                {
                                        display.setText("");
                                        if(nuovo.equals(""))                                              /**se nell'EditText non ci sta scritto nulla,numero2 = 0**/
                                        {
                                        Toast t = Toast.makeText(Convertitore.this, "Type a number", Toast.LENGTH_SHORT);
                                        t.show();
                                        return;
                                        }else{
                                        display.setText(nuovo);
                                        return;}
                                                }
                               
                                if(currentMetod.equals(base[1]))
                                {
                                        display.setText("");
                                        if(nuovo.equals(""))                                              /**se nell'EditText non ci sta scritto nulla,numero2 = 0**/
                                        {
                                        Toast t = Toast.makeText(Convertitore.this, "Type a number from 0 to 1", Toast.LENGTH_SHORT);
                                        t.show();
                                        return;
                                        }
                                        for(char c : nuovo.toCharArray())
                                        {
                                                if(c>49)
                                                {
                                                        Toast.makeText(Convertitore.this, "Error: The type is not valid", Toast.LENGTH_SHORT).show();
                                                        return;
                                                }
                                        }
                                                numero2=Integer.parseInt(nuovo);
                                               
                                                int i=1,m=0,d=0,l=0;
                                                while(numero2>0)
                                                {      
                                                        m=(numero2%10);
                                                    numero2=(numero2/10);
                                                    l=m*i;
                                                    d=d+l;
                                                    i=i*2;
                                                }
                                               
                                                nuovo=Integer.toString(d);
                                                display.setText(nuovo);

                                        }
                                       
                                        if(currentMetod.equals(base[2]))
                                        {
                                                display.setText("");
                                                if(nuovo.equals(""))                                              /**se nell'EditText non ci sta scritto nulla,numero2 = 0**/
                                                {
                                                Toast t = Toast.makeText(Convertitore.this, "Type a number from 0 to 7", Toast.LENGTH_SHORT);
                                                t.show();
                                                return;
                                                }
                                                for(char c : nuovo.toCharArray())
                                                {
                                                        if(c>55)
                                                        {
                                                                Toast.makeText(Convertitore.this, "Error: The type is not valid", Toast.LENGTH_SHORT).show();
                                                                return;
                                                        }
                                                }
                                                       
                                                        numero2=Integer.parseInt(nuovo);
                                                       
                                                        int i=1,m=0,d=0,l=0;
                                                        while(numero2>0)
                                                        {      
                                                                m=(numero2%10);
                                                            numero2=(numero2/10);
                                                            l=m*i;
                                                            d=d+l;
                                                            i=i*8;
                                                        }
                                                       
                                                        nuovo=Integer.toString(d);
                                                        display.setText(nuovo);
                                          }    
                                               
                                                if(currentMetod.equals(base[3]))
                                                {
                                                        display.setText("");
                                                        if(nuovo.equals(""))                                              /**se nell'EditText non ci sta scritto nulla,numero2 = 0**/
                                                        {
                                                        Toast t = Toast.makeText(Convertitore.this, "Type a number from 0 to 9\n or a character from A to F", Toast.LENGTH_SHORT);
                                                        t.show();
                                                        return;
                                                        }
                                                        for(char c : nuovo.toCharArray())
                                                        {
                                                                if(c>70)
                                                                {
                                                                        Toast.makeText(Convertitore.this, "Error: The type is not valid", Toast.LENGTH_SHORT).show();
                                                                        return;
                                                                }
                                                        }
                                                               
                                                                numero2=Integer.parseInt(nuovo, 16);
                                                                nuovo=Integer.toString(numero2);
                                                                display.setText(nuovo);
                                                }
                        }
                });

       
        binario.setOnClickListener(new View.OnClickListener() {
                       
                        public void onClick(View v) {
                                // TODO Auto-generated method stub
                               
                               
                                display.setText("");
                               
                                Editable stringEditable = numero.getText();       /**prendo ciò che ci sta scritto nell testo**/
                                nuovo = stringEditable.toString();                        /**lo converto in stringa*/
                               
                                for(char c : nuovo.toCharArray())
                                {
                                        if(c<48)
                                        {
                                                Toast.makeText(Convertitore.this, "Error: The type is not valid", Toast.LENGTH_SHORT).show();
                                                return;
                                        }
                                       
                                        if(c>122)
                                        {
                                                Toast.makeText(Convertitore.this, "Error: The type is not valid", Toast.LENGTH_SHORT).show();
                                                return;
                                        }
                                }

                                if(currentMetod.equals(base[0]))
                                {
                                        display.setText("");
                                        if(nuovo.equals(""))                                              /**se nell'EditText non ci sta scritto nulla,numero2 = 0**/
                                        {
                                        Toast t = Toast.makeText(Convertitore.this, "Type a number", Toast.LENGTH_SHORT);
                                        t.show();
                                        return;
                                        }
                                        numero2=Integer.parseInt(nuovo);
                                        nuovo=Integer.toBinaryString(numero2);
                                        display.setText(nuovo);
                                                }
                               
                                if(currentMetod.equals(base[1]))
                                                {
                                                       
                                        if(nuovo.equals(""))                                              /**se nell'EditText non ci sta scritto nulla,numero2 = 0**/
                                        {
                                        Toast t = Toast.makeText(Convertitore.this, "Type a number from 0 to 1", Toast.LENGTH_SHORT);
                                        t.show();
                                        return;
                                        }
                                                       
                                                        for(char c : nuovo.toCharArray())
                                                        {
                                                                if(c >49)
                                                                {
                                                                        Toast.makeText(Convertitore.this, "Error: The type is not valid", Toast.LENGTH_SHORT).show();
                                                                        return;
                                                                }
                                                        }
                                                       
                                                        display.setText(nuovo);
                                                }
                                if(currentMetod.equals(base[2]))
                                {
                                        if(nuovo.equals(""))                                              /**se nell'EditText non ci sta scritto nulla,numero2 = 0**/
                                        {
                                        Toast t = Toast.makeText(Convertitore.this, "Type a number from 0 to 7", Toast.LENGTH_SHORT);
                                        t.show();
                                        return;
                                        }
                                        for(char c : nuovo.toCharArray())
                                        {
                                                if(c>55)
                                                {
                                                        Toast.makeText(Convertitore.this, "Error: The type is not valid", Toast.LENGTH_SHORT).show();
                                                        return;
                                                }
                                        }
                                               
                                                numero2=Integer.parseInt(nuovo);
                                               
                                                int i=1,m=0,d=0,l=0;
                                                while(numero2>0)
                                                {      
                                                        m=(numero2%10);
                                                    numero2=(numero2/10);
                                                    l=m*i;
                                                    d=d+l;
                                                    i=i*8;
                                                }
                                                nuovo=Integer.toBinaryString(d);
                                                display.setText(nuovo);
                                }
                               
                                if(currentMetod.equals(base[3]))
                                {
                                        display.setText("");
                                        if(nuovo.equals(""))                                              /**se nell'EditText non ci sta scritto nulla,numero2 = 0**/
                                        {
                                        Toast t = Toast.makeText(Convertitore.this, "Type a number from 0 to 9\n or a character from A to F", Toast.LENGTH_SHORT);
                                        t.show();
                                        return;
                                        }
                                        for(char c : nuovo.toCharArray())
                                        {
                                                if(c>70)
                                                {      
                                                        Toast.makeText(Convertitore.this, "Error: The type is not valid", Toast.LENGTH_SHORT).show();
                                                        return;
                                                }
                                        }
                                               
                                        numero2=Integer.parseInt(nuovo, 16);
                                        nuovo=Integer.toBinaryString(numero2);
                                        display.setText(nuovo);
                                }
                        }
                });
        ottale.setOnClickListener(new View.OnClickListener() {
                       
                        public void onClick(View v) {
                                // TODO Auto-generated method stub

                               
                                display.setText("");
                               
                                Editable stringEditable = numero.getText();       /**prendo ciò che ci sta scritto nell testo**/
                                nuovo = stringEditable.toString();                        /**lo converto in stringa*/
                               
                                for(char c : nuovo.toCharArray())
                                {
                                        if(c<48)
                                        {
                                                Toast.makeText(Convertitore.this, "Error: The type is not valid", Toast.LENGTH_SHORT).show();
                                                return;
                                        }
                                       
                                        if(c>122)
                                        {
                                                Toast.makeText(Convertitore.this, "Error: The type is not valid", Toast.LENGTH_SHORT).show();
                                                return;
                                        }
                                }
                               
                                if(currentMetod.equals(base[0]))
                                {
                                        display.setText("");
                                        if(nuovo.equals(""))                                              /**se nell'EditText non ci sta scritto nulla,numero2 = 0**/
                                        {
                                        Toast t = Toast.makeText(Convertitore.this, "Type a number", Toast.LENGTH_SHORT);
                                        t.show();
                                        return;
                                        }
                                        numero2=Integer.parseInt(nuovo);
                                        nuovo=Integer.toOctalString(numero2);
                                        display.setText(nuovo);
                                }
                               
                                if(currentMetod.equals(base[1]))
                                {
                                        display.setText("");
                                        if(nuovo.equals(""))                                              /**se nell'EditText non ci sta scritto nulla,numero2 = 0**/
                                        {
                                        Toast t = Toast.makeText(Convertitore.this, "Type a number from 0 to 1", Toast.LENGTH_SHORT);
                                        t.show();
                                        return;
                                        }
                                        for(char c : nuovo.toCharArray())
                                        {
                                                if(c>49)
                                                {
                                                        Toast.makeText(Convertitore.this, "Error: The type is not valid", Toast.LENGTH_SHORT).show();
                                                        return;
                                                }
                                        }
                                               
                                                numero2=Integer.parseInt(nuovo);
                                               
                                                int i=1,m=0,d=0,l=0;
                                                while(numero2>0)
                                                {      
                                                        m=(numero2%10);
                                                    numero2=(numero2/10);
                                                    l=m*i;
                                                    d=d+l;
                                                    i=i*2;
                                                }
                                                nuovo=Integer.toOctalString(d);
                                                display.setText(nuovo);
                                }
                                       
                                if(currentMetod.equals(base[2]))
                                {
                                        if(nuovo.equals(""))                                              /**se nell'EditText non ci sta scritto nulla,numero2 = 0**/
                                        {
                                        Toast t = Toast.makeText(Convertitore.this, "Type a number from 0 to 7", Toast.LENGTH_SHORT);
                                        t.show();
                                        return;
                                        }
                                        for(char c : nuovo.toCharArray())
                                        {
                                                if(c>55)
                                                {
                                                        Toast.makeText(Convertitore.this, "Error: The type is not valid", Toast.LENGTH_SHORT).show();
                                                        return;
                                                }
                                        }
                                               
                                        display.setText(nuovo);
                                }
                               
                                if(currentMetod.equals(base[3]))
                                {
                                        display.setText("");
                                        if(nuovo.equals(""))                                              /**se nell'EditText non ci sta scritto nulla,numero2 = 0**/
                                        {
                                        Toast t = Toast.makeText(Convertitore.this, "Type a number from 0 to 9\n or a character from A to F", Toast.LENGTH_SHORT);
                                        t.show();
                                        return;
                                        }
                                        for(char c : nuovo.toCharArray())
                                        {
                                                if(c>70)
                                                {
                                                        Toast.makeText(Convertitore.this, "Error: The type is not valid", Toast.LENGTH_SHORT).show();
                                                        return;
                                                }
                                        }
                                               
                                                numero2=Integer.parseInt(nuovo, 16);
                                                nuovo=Integer.toOctalString(numero2);
                                                display.setText(nuovo);
                                }
                        }
                });
       
        esadec.setOnClickListener(new View.OnClickListener() {
                       
                public void onClick(View v) {
                                // TODO Auto-generated method stub

                               
                                display.setText("");
                               
                                Editable stringEditable = numero.getText();       /**prendo ciò che ci sta scritto nell testo**/
                                nuovo = stringEditable.toString();                        /**lo converto in stringa*/
                               
                                for(char c : nuovo.toCharArray())
                                {
                                        if(c<48)
                                        {
                                                Toast.makeText(Convertitore.this, "Error: The type is not valid", Toast.LENGTH_SHORT).show();
                                                return;
                                        }
                                       
                                        if(c>122)
                                        {
                                                Toast.makeText(Convertitore.this, "Error: The type is not valid", Toast.LENGTH_SHORT).show();
                                                return;
                                        }
                                }
                               
                                if(currentMetod.equals(base[0]))
                                {
                                        display.setText("");
                                        if(nuovo.equals(""))                                              /**se nell'EditText non ci sta scritto nulla,numero2 = 0**/
                                        {
                                        Toast t = Toast.makeText(Convertitore.this, "Type a number", Toast.LENGTH_SHORT);
                                        t.show();
                                        return;
                                        }
                                        numero2=Integer.parseInt(nuovo);
                                        nuovo=Integer.toHexString(numero2).toUpperCase();
                                        display.setText(nuovo);
                                }
                               
                                if(currentMetod.equals(base[1]))
                                {
                                        display.setText("");
                                        if(nuovo.equals(""))                                              /**se nell'EditText non ci sta scritto nulla,numero2 = 0**/
                                        {
                                        Toast t = Toast.makeText(Convertitore.this, "Type a number from 0 to 1", Toast.LENGTH_SHORT);
                                        t.show();
                                        return;
                                        }
                                        for(char c : nuovo.toCharArray())
                                        {
                                                if(c>49)
                                                {
                                                        Toast.makeText(Convertitore.this, "Error: The type is not valid", Toast.LENGTH_SHORT).show();
                                                        return;
                                                }
                                        }
                                               
                                                numero2=Integer.parseInt(nuovo);
                                               
                                                int i=1,m=0,d=0,l=0;
                                                while(numero2>0)
                                                {      
                                                        m=(numero2%10);
                                                    numero2=(numero2/10);
                                                    l=m*i;
                                                    d=d+l;
                                                    i=i*2;
                                                }
                                                nuovo=Integer.toHexString(d).toUpperCase();
                                                display.setText(nuovo);
                                }
                                       
                                if(currentMetod.equals(base[2]))
                                {
                                        display.setText("");
                                        if(nuovo.equals(""))                                              /**se nell'EditText non ci sta scritto nulla,numero2 = 0**/
                                        {
                                        Toast t = Toast.makeText(Convertitore.this, "Type a number from 0 to 7", Toast.LENGTH_SHORT);
                                        t.show();
                                        return;
                                        }
                                        for(char c : nuovo.toCharArray())
                                        {
                                                if(c>55)
                                                {
                                                        Toast.makeText(Convertitore.this, "Error: The type is not valid", Toast.LENGTH_SHORT).show();
                                                        return;
                                                }
                                        }
                                        numero2=Integer.parseInt(nuovo);
                                       
                                        int i=1,m=0,d=0,l=0;
                                        while(numero2>0)
                                        {      
                                                m=(numero2%10);
                                            numero2=(numero2/10);
                                            l=m*i;
                                            d=d+l;
                                            i=i*8;
                                        }
                                        nuovo=Integer.toHexString(d).toUpperCase();
                                        display.setText(nuovo);
                                        }
                               
                                if(currentMetod.equals(base[3]))
                                {
                                        display.setText("");
                                        if(nuovo.equals(""))                                              /**se nell'EditText non ci sta scritto nulla,numero2 = 0**/
                                        {
                                        Toast t = Toast.makeText(Convertitore.this, "Type a number from 0 to 9\n or a character from A to F", Toast.LENGTH_SHORT);
                                        t.show();
                                        return;
                                        }
                                        for(char c : nuovo.toCharArray())
                                        {
                                                if(c>70)
                                                {
                                                        Toast.makeText(Convertitore.this, "Error: The type is not valid", Toast.LENGTH_SHORT).show();
                                                        return;
                                                }
                                        }
                                        display.setText(nuovo);
                                }
                        }
                });
        }

        @Override
        protected void onSaveInstanceState(Bundle outState) {
         // TODO Auto-generated method stub
         outState.putString("TEXT", (String)display.getText());
         super.onSaveInstanceState(outState);
        }
       
        @Override
        protected void onRestoreInstanceState(Bundle savedInstanceState) {
         // TODO Auto-generated method stub
         display.setText(savedInstanceState.getString("TEXT"));
         super.onRestoreInstanceState(savedInstanceState);
        }
       
}