Autore Topic: rotazione schermo  (Letto 954 volte)

Offline bomberdini

  • Nuovo arrivato
  • *
  • Post: 41
  • Respect: 0
    • Mostra profilo
rotazione schermo
« il: 26 Aprile 2012, 16:20:44 CEST »
0


scusate ho un problema sulla rotazione dello schermo... ho utilizzato il terzo metodo di un tutorial qui presente

Quello che ho scritto è la seguente cosa:

Codice (Java): [Seleziona]
public class MyActivity extends Application {
   
   
    private String testo;
   
   
    //singleton design pattern
    static MyActivity instance;
    public static MyActivity getInstance(){
            if(instance==null){
                    Log.v("MyApplication", "instance created");
                    instance=new MyActivity();
            }
            Log.v("MyApplication", "instance returned");
            return instance;
    }
   
   
    @Override
    public void onCreate() {
            super.onCreate();
            Log.v("MyApplication", "onCreate");
           
            MyActivity myApp=getInstance();
            myApp.setText(new String());
           
    }
   
    public void setText(String t) {
            this.testo = t;
    }
   
    public String getText() {
            return testo;
    }

}

Codice (Java): [Seleziona]
public class ProveBottoniActivity extends Activity {
    /** Called when the activity is first created. */
       
        TextView display;
       
          MyActivity myApp=MyActivity.getInstance();
            @Override
            public void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                Log.v("Demo", "onCreate");              
                setContentView(R.layout.main);
               
                Button primo = (Button) findViewById(R.id.button1);
                Button secondo = (Button) findViewById(R.id.button2);
                display = (TextView) findViewById(R.id.tvDisplay);
               
                primo.setOnClickListener(new View.OnClickListener() {
                               
                                @Override
                                public void onClick(View v) {
                                        // TODO Auto-generated method stub
               
                     myApp.setText("Bottone1");                        
                                         display.setText(myApp.getText());
                                       
                                }
                        });
               
             
            }
}



mentre nel manifest ho scritto la seguente cosa:
Codice (XML): [Seleziona]
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
  package="com.prove.lorenzo"
  android:versionCode="1"
  android:versionName="1.0" >

    <uses-sdk android:minSdkVersion="8" />

   
         
       
        <application android:label="@string/app_name" android:icon="@drawable/ic_launcher" android:name=".MyActivity">
         
       
       
           
        <activity
          android:name=".ProveBottoniActivity"
          android:label="@string/app_name"
         
         
           >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
 
       
       

</manifest>

Quando eseguo il programma non ho errori ma cliccando sul bottone 1 e poi premendo ctrl + f11 o ctrl + f12 ossia ruotando lo schermo mi rifa vedere quello che avevo scritto all'inizio, ossia non mantengo i dati. Qualcuno di voi può aiutarmi?? grazie a tutti.

Offline zaxxon

  • Nuovo arrivato
  • *
  • Post: 34
  • Respect: +4
    • Mostra profilo
  • Dispositivo Android:
    Archos 101 G9
  • Sistema operativo:
    Ubuntu 10.04
Re:rotazione schermo
« Risposta #1 il: 26 Aprile 2012, 19:50:35 CEST »
0
La rotazione dello schermo viene intesa dal sistema come un cambio di configurazione e, di default, causa il restart del applicazione.
La documentazione ufficiale indica come ovviare al restart gestendo manualmente l'evento.

Fai particolare attenzione alla nota relativa alle versioni 3.2> per le quali bisogna intercettare sia orientation che screenSize.