Autore Topic: Cambio orientamento da portrait a landscape e l'app esce alla HOME  (Letto 1102 volte)

Offline teopozzi

  • Utente junior
  • **
  • Post: 67
  • Respect: +1
    • Mostra profilo
0
Salve ho un problema praticamente ho sviluppato i layout per il mio dispositivo sia per la visione portrait che landscape, creando due cartelle layout-small per la portrait e layout-small-land per la landscape, il problema è che quando parto il portrait e inclino il cell per portarlo in landscape l'applicazione esce mi torna alla Home, e se riavvio l'applicazione è in modalità landscape, stessa cosa se faccio il viceversa. Visto che dal logcat non mi risulta alcun errore anche i due file sono identici a parte l'orientamento, secondo voi come mai fa così??? avete qualche soluzione da propormi??? Intanto grazie per le risposte.

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:Cambio orientamento da portrait a landscape e l'app esce alla HOME
« Risposta #1 il: 03 Maggio 2011, 10:35:41 CEST »
0
Ma te lo fa solo per la versione small?
E se poi sono uguali, perchè ne hai messi due diversi?

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:Cambio orientamento da portrait a landscape e l'app esce alla HOME
« Risposta #2 il: 03 Maggio 2011, 12:07:48 CEST »
0
Sicuro che i due layout contengano gli stessi identici ID delle risorse?

E poi se esce ad home qualcosa nel logcat deve esserci.

NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline teopozzi

  • Utente junior
  • **
  • Post: 67
  • Respect: +1
    • Mostra profilo
Re:Cambio orientamento da portrait a landscape e l'app esce alla HOME
« Risposta #3 il: 03 Maggio 2011, 15:28:06 CEST »
0
per bradipao gli id sono gli stessi te lo posso assicurare e nel logcat non mi da nessun tipo di errore.

per ricky non ho capito cosa intenti??? ho letto che per fare la versione landscape bisogna fare una cartella layout-land che permette all'applicazione di cambiare view quando si ruota lo schermo e così ho fatto, in più mi hanno detto che i componenti devono essere li stessi e cosi ho fatto.

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:Cambio orientamento da portrait a landscape e l'app esce alla HOME
« Risposta #4 il: 03 Maggio 2011, 16:07:32 CEST »
0
Una prova rapidissima e potenzialmente risolutiva per l'individuazione dell'errore: rimuovi il layout per l'orientazione landscape, avvia l'app e prova a girare il telefono in landscape. Se così facendo l'app funziona in landscape, la colpa è del layout landscape.
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline teopozzi

  • Utente junior
  • **
  • Post: 67
  • Respect: +1
    • Mostra profilo
Re:Cambio orientamento da portrait a landscape e l'app esce alla HOME
« Risposta #5 il: 03 Maggio 2011, 16:38:09 CEST »
0
bradipao prova effettuata ma il problema è sempre lo stesso nessun errore nel logcat e funzionameto uguale a prima: ti posto i due layout

main.cml(portrait)

Codice (XML): [Seleziona]
<?xml version="1.0" encoding="UTF-8"?>
<merge android:layout_width="match_parent"
        android:layout_height="match_parent"
        xmlns:android="http://schemas.android.com/apk/res/android">
       
        <com.google.android.maps.MapView android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:layout_marginTop="0dip"
                android:apiKey="----------------------------------------------------"
                android:clickable="true" android:layout_weight="1"
                android:id="@+id/mv"/>
               
        <LinearLayout android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:orientation="vertical">
               
                <LinearLayout android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:background="#FFFFFF"
                        android:minHeight="64dip"
                        android:id="@+id/linearLayout1">
                       
                        <ImageButton android:layout_width="50dip"
                                android:layout_height="wrap_content"
                                android:id="@+id/login"
                                android:layout_marginTop="10dip"
                                android:src="@drawable/people"/>
                               
                        <ImageButton android:layout_width="50dip"
                                android:layout_height="wrap_content"
                                android:id="@+id/newEvent"
                                android:layout_marginTop="10dip"
                                android:src="@drawable/note"/>
                               
                        <ImageView android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:minHeight="58dip"
                                android:id="@+id/imageView1"
                                android:layout_marginTop="3dip"
                                android:src="@drawable/header2"
                                android:layout_marginLeft="23dip"/>
                               
                        <ImageButton android:layout_width="50dip"
                                android:layout_height="wrap_content"
                                android:id="@+id/gpsButton"
                                android:layout_marginTop="10dip"
                                android:src="@drawable/place"
                                android:layout_marginLeft="20dip"/>
                               
                        <ImageButton android:layout_width="50dip"
                                android:layout_height="wrap_content"
                                android:id="@+id/searchButton"
                                android:layout_marginTop="10dip"
                                android:src="@drawable/search"/>
                </LinearLayout>
                <LinearLayout android:layout_width="fill_parent"
                        android:layout_height="40dip"
                        android:background="#FF1493"
                        android:id="@+id/linearLayout2">

                        <TextView android:layout_width="40dip"
                                android:layout_height="match_parent"
                                android:id="@+id/back"
                                android:layout_marginLeft="1dip"
                                android:text=" &lt;"
                                android:textSize="30sp"
                                android:textColor="#000000"/>
                               
                        <TextView android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:id="@+id/filterDate"
                                android:layout_marginTop="-8dip"
                                android:layout_marginLeft="5dip"
                                android:text="OGGI / TODAY"
                                android:textColor="#000000"/>
                               
                        <TextView android:layout_width="40dip"
                                android:layout_height="match_parent"
                                android:id="@+id/next"
                                android:layout_marginLeft="13dip"
                                android:text=" >"
                                android:textSize="30sp"
                                android:textColor="#000000"/>
                </LinearLayout>
        </LinearLayout>
</merge>

main.xml (landscape)

Codice (XML): [Seleziona]
<?xml version="1.0" encoding="UTF-8"?>
<merge android:layout_width="match_parent"
        android:layout_height="match_parent"
        xmlns:android="http://schemas.android.com/apk/res/android">
       
        <com.google.android.maps.MapView android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:layout_marginTop="0dip"
                android:apiKey="------------------------------------------------------"
                android:clickable="true" android:layout_weight="1"
                android:id="@+id/mv"/>
               
        <LinearLayout android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:orientation="vertical">
               
                <LinearLayout android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:background="#FFFFFF"
                        android:minHeight="64dip"
                        android:id="@+id/linearLayout1">
                       
                        <ImageButton android:layout_width="50dip"
                                android:layout_height="wrap_content"
                                android:id="@+id/login"
                                android:layout_marginTop="10dip"
                                android:src="@drawable/people"/>
                               
                        <ImageButton android:layout_width="50dip"
                                android:layout_height="wrap_content"
                                android:id="@+id/newEvent"
                                android:layout_marginTop="10dip"
                                android:src="@drawable/note"/>
                               
                        <ImageView android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:minHeight="58dip"
                                android:id="@+id/imageView1"
                                android:layout_marginTop="3dip"
                                android:src="@drawable/header2" android:layout_marginLeft="73dip"/>
                               
                        <ImageButton android:layout_width="50dip"
                                android:layout_height="wrap_content"
                                android:id="@+id/gpsButton"
                                android:layout_marginTop="10dip"
                                android:src="@drawable/place" android:layout_marginLeft="78dip"/>
                               
                        <ImageButton android:layout_width="50dip"
                                android:layout_height="wrap_content"
                                android:id="@+id/searchButton"
                                android:layout_marginTop="10dip"
                                android:src="@drawable/search"/>
                </LinearLayout>
                <LinearLayout android:layout_width="fill_parent"
                        android:layout_height="40dip"
                        android:background="#FF1493"
                        android:id="@+id/linearLayout2">

                        <TextView android:layout_width="40dip"
                                android:layout_height="match_parent"
                                android:id="@+id/back"
                                android:layout_marginLeft="1dip"
                                android:text=" &lt;"
                                android:textSize="30sp"
                                android:textColor="#000000"/>
                               
                        <TextView android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:id="@+id/filterDate"
                                android:layout_marginTop="-8dip"
                                android:layout_marginLeft="5dip"
                                android:text="OGGI / TODAY"
                                android:textColor="#000000"/>
                               
                        <TextView android:layout_width="40dip"
                                android:layout_height="match_parent"
                                android:id="@+id/next"
                                android:layout_marginLeft="13dip"
                                android:text=" >"
                                android:textSize="30sp"
                                android:textColor="#000000"/>
                </LinearLayout>
        </LinearLayout>
</merge>
« Ultima modifica: 03 Maggio 2011, 17:17:38 CEST da Nicola_D, Reason: IL codice per favore mettilo negli appositi TAG! »

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:Cambio orientamento da portrait a landscape e l'app esce alla HOME
« Risposta #6 il: 03 Maggio 2011, 17:03:38 CEST »
0
Citazione da: bradipao
Una prova rapidissima e potenzialmente risolutiva per l'individuazione dell'errore: rimuovi il layout per l'orientazione landscape, avvia l'app e prova a girare il telefono in landscape. Se così facendo l'app funziona in landscape, la colpa è del layout landscape.

bradipao prova effettuata ma il problema è sempre lo stesso nessun errore nel logcat e funzionameto uguale a prima: ti posto i due layout

Un momento! Se il problema ti si presenta anche con un unico file di layout, allora quasi sicuramente il file di layout non è la causa. Tieni conto che quando cambi orientazione al telefono, l'activity corrente viene praticamente distrutta e ricreata, e nel caso in cui tu abbia valorizzato variabili membro dell'activity o avviato thread, occorre recuperarle o quanto meno re-inizializzarle. E' il tuo caso?
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline teopozzi

  • Utente junior
  • **
  • Post: 67
  • Respect: +1
    • Mostra profilo
Re:Cambio orientamento da portrait a landscape e l'app esce alla HOME
« Risposta #7 il: 03 Maggio 2011, 17:15:14 CEST »
0
allora se ho capito bene in teoria dovrebbe gia fare tutto lui però per sicurezza ti posto il codice dell prime due classi:


welcome.class

Codice (Java): [Seleziona]
public class WelcomeActivity extends Activity{
       
        private final static int YES_NO_DIALOG = 0;
        public static Network networking;
        private ProgressDialog dialog;
       
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.welcome);
        new CountDownTimer(4000, 100) {
               
             public void onTick(long millisUntilFinished) {
               
             }
       
             public void onFinish() {
                initActivity();
             }
          }.start();
       
    }
   
    protected Dialog onCreateDialog(int id) {
                switch (id) {
                case YES_NO_DIALOG:
                        return createYesNoDialog();
                }      
                return null;
               
    }
   
    private final Dialog createYesNoDialog() {
                // Otteniamo il riferimento al Builder
                AlertDialog.Builder builder = new AlertDialog.Builder(this);
                // Impostiamo il titolo, il messaggio ed una icona in chaining
                builder.setTitle("ATTENZIONE");
                builder.setIcon(R.drawable.icon);
                builder.setMessage("Connessione dati assente, verifica il collegamento");
                // Impostiamo il pulsante di Yes con il relativo listener
                builder.setPositiveButton("Impostazioni",
                                new DialogInterface.OnClickListener() {

                                        public void onClick(DialogInterface dialog, int id) {
                                                startActivity(new Intent(Settings.ACTION_WIRELESS_SETTINGS));
                                        }

                                });
               
                builder.setNegativeButton("Chiudi",
                                new DialogInterface.OnClickListener() {

                                       
                                        public void onClick(DialogInterface dialog, int id) {
                                                WelcomeActivity.this.finish();
                                        }

                                });
                // Ritorniamo l'Alert creato
                return builder.create();
        }
       
        public void initActivity(){
                dialog = ProgressDialog.show(WelcomeActivity.this, "", "Loading. Please wait...", true);
                new Thread() {
                        public void run() {
                                try{
                                        sleep(100);
                                } catch (Exception e) {
                                        Log.e("tag", e.getMessage());
                                }
                                dialog.dismiss();
                        }
                }.start();
                if(Network.isNetworkAvailable(getApplicationContext())){
                        Intent intent = new Intent(WelcomeActivity.this, LoveRiminiActivity.class);
                        startActivity(intent);
                }else{
                        showDialog(YES_NO_DIALOG);
                }
        }
       
        @Override
    public void onPause() {
                super.onPause();
                finish();
        }
}

e main.class

private static final int MENU_LIST_EVENT = 1;
        private static final int MENU_LIST_CITY = 2;
        private static final int MENU_LIST_CATEGORY = 3;
        private static final int MENU_DATE = 4;
        private static final int MENU_FAVORITES = 5;
        private static final int EXIT = 6;
       
        LocationManager locationManager;
    private MyLocationOverlay myLocationOverlay;
    MapController mapControl;
    MapView mapView;
    Drawable drawable;
        MyItemizedOverlay itemizedOverlay;
        List<Overlay> mapOverlays;
   
        ProgressDialog dialog = null;
    TextView filterDate, next, back;
    String[] date_start;
    ImageButton newEvent, gpsButton;
    int count, f;
    String park1;
   
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        mapView = (MapView) findViewById(R.id.mv);
        mapView.setSatellite(false);
        mapView.setTraffic(false);
        mapView.setBuiltInZoomControls(true);
       
       
        myLocationOverlay = new MyLocationOverlay(this, mapView);
        List<Overlay> overlays = mapView.getOverlays();
        overlays.add(myLocationOverlay);
        myLocationOverlay.enableMyLocation();
       
        locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
       
        if(!locationManager.isProviderEnabled("gps")){
            //Toast.makeText(this, "GPS è attualmente disabilitato. E' possibile abilitarlo dal menu impostazioni.", Toast.LENGTH_LONG).show();
           
        }
        locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, locationListener);
       
        String xmlUrl = "http://www.rimini.com/soap/getEvents.php";
        final ParserEvent parser = new ParserEvent();
        parser.parseXml(xmlUrl);
        filterDate = (TextView)findViewById(R.id.filterDate);
        date_start = new String[parser.parsedData.size()];
        for(int i=0; i<parser.parsedData.size(); i++){
                ListEvent event = parser.parsedData.get(i);
                date_start[i] = event.getDateEvent();
        }
       
        filterDate.setText("OGGI / TODAY");
        Calendar c = Calendar.getInstance();
                int year = c.get(Calendar.YEAR);
                int month = c.get(Calendar.MONTH)+1;
                int day = c.get(Calendar.DAY_OF_MONTH);
                mapOverlays = mapView.getOverlays();
                drawable = getResources().getDrawable(R.drawable.red);
                itemizedOverlay = new MyItemizedOverlay(drawable, mapView);
                for(int j=0; j<date_start.length; j++){
                        String temp_date = date_start[j].substring(0, 1);
                        int aInt = Integer.parseInt(temp_date);
                        String park_date = date_start[j].substring(3, 4);
                        int bInt = Integer.parseInt(park_date);
                        String cc_date = date_start[j].substring(6,9);
                        int cInt = Integer.parseInt(cc_date);
                        if((year == cInt)&&(bInt == month)&&(day == aInt)){
                                ListEvent even1 = parser.parsedData.get(j);
                                String title = even1.getTitleEvent();
                                String lat = even1.getLatitudineEvent();
                                String lng = even1.getLongitudineDateEvent();
                                Double latCoor = Double.valueOf(lat);
                                Double lonCoor = Double.valueOf(lng);
                                GeoPoint point = new GeoPoint((int)(latCoor*1E6),(int)(lonCoor*1E6));
                                OverlayItem overlayItem = new OverlayItem(point, title,"");
                                itemizedOverlay.addOverlay(overlayItem);
                                mapOverlays.add(itemizedOverlay);
                                mapControl = mapView.getController();
                                mapControl.animateTo(point);
                                mapControl.setZoom(11);
                        }
                }
               
                next = (TextView)findViewById(R.id.next);
        count = 0;
        next.setOnClickListener(new OnClickListener(){
                @Override
                        public void onClick(View v) {
                        if(count == 0){
                                itemizedOverlay.clear();
                                mapView.invalidate();
                                filterDate.setText("DOMANI / TOMORROW");
                                park1 = filterDate.getText().toString();
                                if(park1.equals("DOMANI / TOMORROW")){
                                        Calendar c = Calendar.getInstance();
                                        int year = c.get(Calendar.YEAR);
                                        int month = c.get(Calendar.MONTH)+1;
                                        int day = c.get(Calendar.DAY_OF_MONTH)+1;
                                        String date_from = day+".0"+month+"."+year;
                                        mapOverlays = mapView.getOverlays();
                                        drawable = getResources().getDrawable(R.drawable.red);
                                        itemizedOverlay = new MyItemizedOverlay(drawable, mapView);
                                        String xmlUrl = "[url=http://www.rimini.com/soap/getEvents.php?&from_date="+date_from+"&to_date="+date_from;] 48° Gran Premio Giovanissimi Scherma “Renzo Nostini[/url]
                                        final ParserEvent parser = new ParserEvent();
                                        parser.parseXml(xmlUrl);
                                        for(int j=0; j<parser.parsedData.size(); j++){
                                                ListEvent even1 = parser.parsedData.get(j);
                                                String title = even1.getTitleEvent();
                                                String lat = even1.getLatitudineEvent();
                                                String lng = even1.getLongitudineDateEvent();
                                                Double latCoor = Double.valueOf(lat);
                                                Double lonCoor = Double.valueOf(lng);
                                                GeoPoint point = new GeoPoint((int)(latCoor*1E6),(int)(lonCoor*1E6));
                                                OverlayItem overlayItem = new OverlayItem(point, title,"");
                                                itemizedOverlay.addOverlay(overlayItem);
                                                mapOverlays.add(itemizedOverlay);
                                                mapControl = mapView.getController();
                                                mapControl.animateTo(point);
                                                mapControl.setZoom(11);
                                        }
                                }
                                count++;
                        }else if(count == 1){
                                itemizedOverlay.clear();
                                filterDate.setText("QUESTA SETTIMANA / THIS WEEK");
                                        park1 = filterDate.getText().toString();
                                        if(park1.equals("QUESTA SETTIMANA / THIS WEEK")){
                                                Calendar c = Calendar.getInstance();
                                                c.set(Calendar.DAY_OF_WEEK,Calendar.SUNDAY);
                                                c.set(Calendar.HOUR_OF_DAY,0);
                                                c.set(Calendar.MINUTE,0);
                                                c.set(Calendar.SECOND,0);
                                                int end = c.getTime().getDate();
                                                c.set(Calendar.DAY_OF_WEEK,Calendar.MONDAY);
                                                c.set(Calendar.HOUR_OF_DAY,0);
                                                c.set(Calendar.MINUTE,0);
                                                c.set(Calendar.SECOND,0);
                                                int start = c.getTime().getDate();
                                                int month = c.get(Calendar.MONTH)+1;
                                                int monthNext = c.get(Calendar.MONTH)+2;
                                                mapOverlays = mapView.getOverlays();
                                                drawable = getResources().getDrawable(R.drawable.red);
                                                itemizedOverlay = new MyItemizedOverlay(drawable, mapView);
                                                for(int j=0; j<date_start.length; j++){
                                                        String temp_week = date_start[j].substring(0, 1);
                                                        int aInt = Integer.parseInt(temp_week);
                                                        String park_week = date_start[j].substring(3, 4);
                                                        int bInt = Integer.parseInt(park_week);
                                                        if(((bInt == month)||(bInt == monthNext))&&(aInt >= start)&&(aInt <= end)){
                                                                ListEvent even1 = parser.parsedData.get(j);
                                                                String title = even1.getTitleEvent();
                                                                String lat = even1.getLatitudineEvent();
                                                                String lng = even1.getLongitudineDateEvent();
                                                                Double latCoor = Double.valueOf(lat);
                                                                Double lonCoor = Double.valueOf(lng);
                                                                GeoPoint point = new GeoPoint((int)(latCoor*1E6),(int)(lonCoor*1E6));
                                                                OverlayItem overlayItem = new OverlayItem(point, title,"");
                                                                itemizedOverlay.addOverlay(overlayItem);
                                                                mapOverlays.add(itemizedOverlay);
                                                                mapControl = mapView.getController();
                                                                mapControl.animateTo(point);
                                                                mapControl.setZoom(11);
                                                        }
                                                }
                                        }
                                        count++;
                        }else if(count == 2){
                                itemizedOverlay.clear();
                                filterDate.setText("QUESTO MESE / THIS MONTH");
                                        park1 = filterDate.getText().toString();
                                        if(park1.equals("QUESTO MESE / THIS MONTH")){
                                                Calendar c = Calendar.getInstance();
                                                int mese = c.get(Calendar.MONTH)+1;
                                                mapOverlays = mapView.getOverlays();
                                                drawable = getResources().getDrawable(R.drawable.red);
                                                itemizedOverlay = new MyItemizedOverlay(drawable, mapView);
                                                for(int j=0; j<date_start.length; j++){
                                                        String park_month = date_start[j].substring(3, 4);
                                                        int bInt = Integer.parseInt(park_month);
                                                        if(bInt == mese){
                                                                ListEvent even1 = parser.parsedData.get(j);
                                                                String title = even1.getTitleEvent();
                                                                String lat = even1.getLatitudineEvent();
                                                                String lng = even1.getLongitudineDateEvent();
                                                                Double latCoor = Double.valueOf(lat);
                                                                Double lonCoor = Double.valueOf(lng);
                                                                GeoPoint point = new GeoPoint((int)(latCoor*1E6),(int)(lonCoor*1E6));
                                                                OverlayItem overlayItem = new OverlayItem(point, title,"");
                                                                itemizedOverlay.addOverlay(overlayItem);
                                                                mapOverlays.add(itemizedOverlay);
                                                                mapControl = mapView.getController();
                                                                mapControl.animateTo(point);
                                                                mapControl.setZoom(11);
                                                        }
                                                }
                                        }
                                        count = 0;
                        }
                }
        });
       
        back = (TextView)findViewById(R.id.back);
        f = 0;
        back.setOnClickListener(new OnClickListener(){
                @Override
                        public void onClick(View v) {
                        if(f == 0){
                                itemizedOverlay.clear();
                                filterDate.setText("QUESTA SETTIMANA / THIS WEEK");
                                park1 = filterDate.getText().toString();
                                if(park1.equals("QUESTA SETTIMANA / THIS WEEK")){
                                        Calendar c = Calendar.getInstance();
                                        c.set(Calendar.DAY_OF_WEEK,Calendar.SUNDAY);
                                        c.set(Calendar.HOUR_OF_DAY,0);
                                        c.set(Calendar.MINUTE,0);
                                        c.set(Calendar.SECOND,0);
                                        int date_end = c.getTime().getDate();
                                        c.set(Calendar.DAY_OF_WEEK,Calendar.MONDAY);
                                        c.set(Calendar.HOUR_OF_DAY,0);
                                        c.set(Calendar.MINUTE,0);
                                        c.set(Calendar.SECOND,0);
                                        int start_date = c.getTime().getDate();
                                        int month = c.get(Calendar.MONTH)+1;
                                        int monthNext = c.get(Calendar.MONTH)+2;
                                        mapOverlays = mapView.getOverlays();
                                        drawable = getResources().getDrawable(R.drawable.red);
                                        itemizedOverlay = new MyItemizedOverlay(drawable, mapView);
                                        for(int j=0; j<date_start.length; j++){
                                                String temp_week = date_start[j].substring(0, 1);
                                                int aInt = Integer.parseInt(temp_week);
                                                String park_week = date_start[j].substring(3, 4);
                                                int bInt = Integer.parseInt(park_week);
                                                if(((bInt == month)||(bInt == monthNext))&&(aInt >= start_date)&&(aInt <= date_end)){
                                                        ListEvent even1 = parser.parsedData.get(j);
                                                        String title = even1.getTitleEvent();
                                                        String lat = even1.getLatitudineEvent();
                                                        String lng = even1.getLongitudineDateEvent();
                                                        Double latCoor = Double.valueOf(lat);
                                                        Double lonCoor = Double.valueOf(lng);
                                                        GeoPoint point = new GeoPoint((int)(latCoor*1E6),(int)(lonCoor*1E6));
                                                        OverlayItem overlayItem = new OverlayItem(point, title,"");
                                                        itemizedOverlay.addOverlay(overlayItem);
                                                        mapOverlays.add(itemizedOverlay);
                                                        mapControl = mapView.getController();
                                                        mapControl.animateTo(point);
                                                        mapControl.setZoom(11);
                                                }
                                        }
                                }
                                f++;
                        }else if(f == 1){
                                itemizedOverlay.clear();
                                        mapView.invalidate();
                                        filterDate.setText("DOMANI / TOMORROW");
                                        park1 = filterDate.getText().toString();
                                        if(park1.equals("DOMANI / TOMORROW")){
                                                Calendar c = Calendar.getInstance();
                                                int year = c.get(Calendar.YEAR);
                                                int month = c.get(Calendar.MONTH)+1;
                                                int day = c.get(Calendar.DAY_OF_MONTH)+1;
                                                String date_from = day+".0"+month+"."+year;
                                                mapOverlays = mapView.getOverlays();
                                                drawable = getResources().getDrawable(R.drawable.red);
                                                itemizedOverlay = new MyItemizedOverlay(drawable, mapView);
                                                String xmlUrl = "[url=http://www.rimini.com/soap/getEvents.php?&from_date="+date_from+"&to_date="+date_from;] 48° Gran Premio Giovanissimi Scherma “Renzo Nostini[/url]
                                        final ParserEvent parser = new ParserEvent();
                                        parser.parseXml(xmlUrl);
                                                for(int j=0; j<parser.parsedData.size(); j++){
                                                        ListEvent even1 = parser.parsedData.get(j);
                                                        String title = even1.getTitleEvent();
                                                        String lat = even1.getLatitudineEvent();
                                                        String lng = even1.getLongitudineDateEvent();
                                                        Double latCoor = Double.valueOf(lat);
                                                        Double lonCoor = Double.valueOf(lng);
                                                        GeoPoint point = new GeoPoint((int)(latCoor*1E6),(int)(lonCoor*1E6));
                                                        OverlayItem overlayItem = new OverlayItem(point, title,"");
                                                        itemizedOverlay.addOverlay(overlayItem);
                                                        mapOverlays.add(itemizedOverlay);
                                                        mapControl = mapView.getController();
                                                        mapControl.animateTo(point);
                                                        mapControl.setZoom(11);
                                                }
                                        }
                                        f++;
                        }else if(f == 2){
                                itemizedOverlay.clear();
                                        filterDate.setText("OGGI / TODAY");
                                        park1 = filterDate.getText().toString();
                                        if(park1.equals("OGGI / TODAY")){
                                                Calendar c = Calendar.getInstance();
                                                int year = c.get(Calendar.YEAR);
                                                int month = c.get(Calendar.MONTH)+1;
                                                int day = c.get(Calendar.DAY_OF_MONTH);
                                                mapOverlays = mapView.getOverlays();
                                                drawable = getResources().getDrawable(R.drawable.red);
                                                itemizedOverlay = new MyItemizedOverlay(drawable, mapView);
                                                for(int j=0; j<date_start.length; j++){
                                                        String temp = date_start[j].substring(0, 1);
                                                        int aInt = Integer.parseInt(temp);
                                                        String park = date_start[j].substring(3, 4);
                                                        int bInt = Integer.parseInt(park);
                                                        String cc = date_start[j].substring(6, 9);
                                                        int cInt = Integer.parseInt(cc);
                                                        if((year == cInt)&&(bInt == month)&&(day == aInt)){
                                                                ListEvent even1 = parser.parsedData.get(j);
                                                                String title = even1.getTitleEvent();
                                                                String lat = even1.getLatitudineEvent();
                                                                String lng = even1.getLongitudineDateEvent();
                                                                Double latCoor = Double.valueOf(lat);
                                                                Double lonCoor = Double.valueOf(lng);
                                                                GeoPoint point = new GeoPoint((int)(latCoor*1E6),(int)(lonCoor*1E6));
                                                                OverlayItem overlayItem = new OverlayItem(point, title,"");
                                                                itemizedOverlay.addOverlay(overlayItem);
                                                                mapOverlays.add(itemizedOverlay);
                                                                mapControl = mapView.getController();
                                                                mapControl.animateTo(point);
                                                                mapControl.setZoom(11);
                                                        }
                                                }
                                        }
                                        f = 0;
                                        count = 0;
                        }
                        }
        });
       
               
                newEvent = (ImageButton)findViewById(R.id.newEvent);
            newEvent.setOnClickListener(new OnClickListener(){
                @Override
                        public void onClick(View v) {
                        dialog = ProgressDialog.show(LoveRiminiActivity.this, "", "Loading. Please wait...", true);
                                //Intent intent = new Intent(LoveRiminiActivity.this, NewEventActivity.class);
                        //startActivity(intent);
                        new Thread() {
                                        public void run() {
                                                try{
                                                        sleep(1000);
                                                } catch (Exception e) {
                                                        Log.e("tag", e.getMessage());
                                                }
                                                dialog.dismiss();
                                        }
                                }.start();
                        }
            });
           
            gpsButton = (ImageButton)findViewById(R.id.gpsButton);
        gpsButton.setOnClickListener(new OnClickListener(){
                @Override
                        public void onClick(View v) {
                                mapControl = mapView.getController();
                                LocationManager lm = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
                                Criteria crit = new Criteria();
                                crit.setAccuracy(Criteria.ACCURACY_FINE);
                                String provider = lm.getBestProvider(crit, true);
                                Location loc = lm.getLastKnownLocation(provider);
                                Double lat = loc.getLatitude();
                                Double lng = loc.getLongitude();
                                GeoPoint point = new GeoPoint((int)(lat * 1E6),(int)(lng * 1E6));
                                mapControl.animateTo(point);
                                mapControl.setZoom(13);
                            mapView.invalidate();
                        }
               
        });
    }
       
    LocationListener locationListener = new LocationListener(){
        @Override
        public void onLocationChanged(Location location){
                mapView.invalidate();
                Double geoLat = location.getLatitude()*1E6;
            Double geoLng = location.getLongitude()*1E6;
            GeoPoint point = new GeoPoint(geoLat.intValue(), geoLng.intValue());
            mapControl.animateTo(point);
        }
        @Override
        public void onProviderDisabled(String provider) {
            //Toast.makeText(SimpleWebActivity.this,"onProviderDisabled "+provider, Toast.LENGTH_SHORT).show();
        }
        @Override      
        public void onProviderEnabled(String provider) {
            //Toast.makeText(SimpleWebActivity.this,"onProviderEnabled "+provider, Toast.LENGTH_SHORT).show();
        }
        @Override      
        public void onStatusChanged(String provider, int status,Bundle extras) {
            //Toast.makeText(SimpleWebActivity.this,"onStatusChanged "+provider+" status: "+status, Toast.LENGTH_SHORT).show();
        }
    };
   
    @Override
    public void onPause() {
        super.onPause();
        if(locationManager != null){
                locationManager.removeUpdates(locationListener);
                myLocationOverlay.disableMyLocation();
        }
        finish();
    }
   
   
    public boolean onCreateOptionsMenu(Menu menu){
        super.onCreateOptionsMenu(menu);
                int order = Menu.FIRST;
                int GROUPA = 0;
                menu.add(GROUPA, MENU_LIST_EVENT, order++, "Lista Eventi");
                menu.add(GROUPA, MENU_LIST_CITY, order++, "Lista città");
                menu.add(GROUPA, MENU_LIST_CATEGORY, order++, "Lista categorie");
                menu.add(GROUPA, MENU_DATE, order++, "Ricerca per data");
                menu.add(GROUPA, MENU_FAVORITES, order++, "Preferiti");
                menu.add(GROUPA, EXIT, order++, "Esci");
                return true;
        }
   
   
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
            case MENU_LIST_EVENT:
                showDialog(1);
                                return true;
        }
        switch (item.getItemId()) {
                case MENU_LIST_CITY:
                        showDialog(2);
                        return true;
        }
        switch (item.getItemId()) {
                case MENU_LIST_CATEGORY:
                        showDialog(3);
                        return true;
        }
        switch (item.getItemId()) {
                        case MENU_DATE:
                                showDialog(4);
                                return true;
        }
        switch (item.getItemId()) {
                        case MENU_FAVORITES:
                                showDialog(5);
                                return true;
        }
        switch (item.getItemId()) {
                case EXIT:
                        exitApplication();
                        return true;
        }
        return false;
    }
   
    private void exitApplication(){
        finish();
    }
   
    @Override
    protected Dialog onCreateDialog(int id){
        switch (id) {
        case 1:
                dialog = ProgressDialog.show(LoveRiminiActivity.this, "", "Loading. Please wait...", true);
                showListEvent();
                return dialog;
        }
        switch (id) {
        case 2:
                dialog = ProgressDialog.show(LoveRiminiActivity.this, "", "Loading. Please wait...", true);
                showListCity();
                return dialog;
        }
        switch (id) {
        case 3:
                dialog = ProgressDialog.show(LoveRiminiActivity.this, "", "Loading. Please wait...", true);
                showListCategory();
                return dialog;
        }
        switch (id) {
        case 4:
                dialog = ProgressDialog.show(LoveRiminiActivity.this, "", "Loading. Please wait...", true);
                showEventForDate();
                return dialog;
        }
        switch (id) {
        case 5:
                dialog = ProgressDialog.show(LoveRiminiActivity.this, "", "Loading. Please wait...", true);
                showFavorites();
                return dialog;
        }
        return dialog;
    }
   
    private void showListEvent() {
        Intent intent = new Intent(LoveRiminiActivity.this, ListEventsActivity.class);
        startActivity(intent);
    }
   
    private void showListCity() {
        Intent intent = new Intent(LoveRiminiActivity.this, CitiesTextViewActivity.class);
        startActivity(intent);
    }
       
        private void showListCategory() {
                Intent intent = new Intent(LoveRiminiActivity.this, CategoriesTextViewActivity.class);
        startActivity(intent);
        }
       
        private void showFavorites() {
                Intent intent = new Intent(LoveRiminiActivity.this, FavoritesActivity.class);
        startActivity(intent);
    }
       
        private void showEventForDate() {
                Intent intent = new Intent(LoveRiminiActivity.this, DateEventActivity.class);
        startActivity(intent);
        }
   
    @Override
    protected void onResume() {
        super.onResume();
        locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, locationListener);
        myLocationOverlay.enableMyLocation();
    }

    public static double getRound(double x, int digits){
        double powerOfTen = Math.pow(10, digits);
        return ((double)Math.round(x * powerOfTen) / powerOfTen);
    }
   
    @Override
        protected boolean isRouteDisplayed() {
                return false;
        }
   
   
}
« Ultima modifica: 03 Maggio 2011, 17:17:00 CEST da Nicola_D, Reason: IL codice per favore mettilo negli appositi TAG! »

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:Cambio orientamento da portrait a landscape e l'app esce alla HOME
« Risposta #8 il: 03 Maggio 2011, 19:05:24 CEST »
0
Uhmmm... il listener del locationmanager lo gestisci, era il mio primo indiziato prima di leggere il codice.

Per pulizia io toglierei il finish() dall'onPause e soprattutto toglierei il requestLocationUpdates dall'OnCreate, perchè tanto lo fai già in OnResume e poi perchè ho l'impressione che nel punto in cui lo fai locationlistener non è stato ancora creato.

NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline teopozzi

  • Utente junior
  • **
  • Post: 67
  • Respect: +1
    • Mostra profilo
Re:Cambio orientamento da portrait a landscape e l'app esce alla HOME
« Risposta #9 il: 03 Maggio 2011, 19:20:57 CEST »
0
allora ho provato come dici tu appena partita l'app ho ruotato il cell e mi ha dato errore, questo è il logcat:

05-03 19:18:44.593: ERROR/ActivityManager(102): fail to set top app changed!
05-03 19:19:09.373: ERROR/AndroidRuntime(3169): FATAL EXCEPTION: main
05-03 19:19:09.373: ERROR/AndroidRuntime(3169): android.view.WindowManager$BadTokenException: Unable to add window -- token android.os.BinderProxy@447d1308 is not valid; is your activity running?
05-03 19:19:09.373: ERROR/AndroidRuntime(3169):     at android.view.ViewRoot.setView(ViewRoot.java:509)
05-03 19:19:09.373: ERROR/AndroidRuntime(3169):     at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:177)
05-03 19:19:09.373: ERROR/AndroidRuntime(3169):     at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:91)
05-03 19:19:09.373: ERROR/AndroidRuntime(3169):     at android.view.Window$LocalWindowManager.addView(Window.java:424)
05-03 19:19:09.373: ERROR/AndroidRuntime(3169):     at android.app.Dialog.show(Dialog.java:241)
05-03 19:19:09.373: ERROR/AndroidRuntime(3169):     at android.app.ProgressDialog.show(ProgressDialog.java:107)
05-03 19:19:09.373: ERROR/AndroidRuntime(3169):     at android.app.ProgressDialog.show(ProgressDialog.java:90)
05-03 19:19:09.373: ERROR/AndroidRuntime(3169):     at it.android.projectiloverimini.WelcomeActivity.initActivity(WelcomeActivity.java:76)
05-03 19:19:09.373: ERROR/AndroidRuntime(3169):     at it.android.projectiloverimini.WelcomeActivity$1.onFinish(WelcomeActivity.java:30)
05-03 19:19:09.373: ERROR/AndroidRuntime(3169):     at android.os.CountDownTimer$1.handleMessage(CountDownTimer.java:118)
05-03 19:19:09.373: ERROR/AndroidRuntime(3169):     at android.os.Handler.dispatchMessage(Handler.java:99)
05-03 19:19:09.373: ERROR/AndroidRuntime(3169):     at android.os.Looper.loop(Looper.java:143)
05-03 19:19:09.373: ERROR/AndroidRuntime(3169):     at android.app.ActivityThread.main(ActivityThread.java:4914)
05-03 19:19:09.373: ERROR/AndroidRuntime(3169):     at java.lang.reflect.Method.invokeNative(Native Method)
05-03 19:19:09.373: ERROR/AndroidRuntime(3169):     at java.lang.reflect.Method.invoke(Method.java:521)
05-03 19:19:09.373: ERROR/AndroidRuntime(3169):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:858)
05-03 19:19:09.373: ERROR/AndroidRuntime(3169):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
05-03 19:19:09.373: ERROR/AndroidRuntime(3169):     at dalvik.system.NativeStart.main(Native Method)

Offline Nicola_D

  • Moderatore
  • Utente storico
  • *****
  • Post: 2479
  • SBAGLIATO!
  • Respect: +323
    • Github
    • Google+
    • nicoladorigatti
    • Mostra profilo
  • Dispositivo Android:
    Nexus 6p, Nexus 4, Nexus S, Nexus 7(2012)
  • Sistema operativo:
    Windows 7
Re:Cambio orientamento da portrait a landscape e l'app esce alla HOME
« Risposta #10 il: 03 Maggio 2011, 19:22:03 CEST »
0
Uhmmm... il listener del locationmanager lo gestisci, era il mio primo indiziato prima di leggere il codice.

Per pulizia io toglierei il finish() dall'onPause e soprattutto toglierei il requestLocationUpdates dall'OnCreate, perchè tanto lo fai già in OnResume e poi perchè ho l'impressione che nel punto in cui lo fai locationlistener non è stato ancora creato.
credo il problema sia il finish() nell'onPause... se fa il finish() poi l'activity non sa che deve ripartire...
IMPORTANTE:NON RISPONDO A PROBLEMI VIA MESSAGGIO PRIVATO
LOGCAT: Non sai cos'è? -> Android Debug Bridge | Android Developers
               Dov'è in Eclipse? -> Window -> Open Prospective -> DDMS e guarda in basso!
[Obbligatorio] Logcat, questo sconosciuto! (Gruppo AndDev.it LOGTFO) - Android Developers Italia

Offline Nicola_D

  • Moderatore
  • Utente storico
  • *****
  • Post: 2479
  • SBAGLIATO!
  • Respect: +323
    • Github
    • Google+
    • nicoladorigatti
    • Mostra profilo
  • Dispositivo Android:
    Nexus 6p, Nexus 4, Nexus S, Nexus 7(2012)
  • Sistema operativo:
    Windows 7
Re:Cambio orientamento da portrait a landscape e l'app esce alla HOME
« Risposta #11 il: 03 Maggio 2011, 19:24:32 CEST »
0
allora ho provato come dici tu appena partita l'app ho ruotato il cell e mi ha dato errore, questo è il logcat:
05-03 19:19:09.373: ERROR/AndroidRuntime(3169):     at it.android.projectiloverimini.WelcomeActivity.initActivity(WelcomeActivity.java:76)

a questa riga c'è: showDialog(YES_NO_DIALOG); ?
IMPORTANTE:NON RISPONDO A PROBLEMI VIA MESSAGGIO PRIVATO
LOGCAT: Non sai cos'è? -> Android Debug Bridge | Android Developers
               Dov'è in Eclipse? -> Window -> Open Prospective -> DDMS e guarda in basso!
[Obbligatorio] Logcat, questo sconosciuto! (Gruppo AndDev.it LOGTFO) - Android Developers Italia

Offline teopozzi

  • Utente junior
  • **
  • Post: 67
  • Respect: +1
    • Mostra profilo
Re:Cambio orientamento da portrait a landscape e l'app esce alla HOME
« Risposta #12 il: 03 Maggio 2011, 19:26:37 CEST »
0
no Nicola a quella riga c'è
//locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, locationListener); l'ho commentata per provare come mi diceva bradipao

Offline teopozzi

  • Utente junior
  • **
  • Post: 67
  • Respect: +1
    • Mostra profilo
Re:Cambio orientamento da portrait a landscape e l'app esce alla HOME
« Risposta #13 il: 03 Maggio 2011, 19:28:43 CEST »
0
scusa Nicola ho sbagliato a vedere la classe si a quella riga c'è quella

Offline teopozzi

  • Utente junior
  • **
  • Post: 67
  • Respect: +1
    • Mostra profilo
Re:Cambio orientamento da portrait a landscape e l'app esce alla HOME
« Risposta #14 il: 03 Maggio 2011, 19:55:38 CEST »
0
sono riuscito a risolvere soltanto che però avendo un button che fa da esci dall'applicazione cosi facendo non esce, prchè ho tolto il finish mo che faccio per uscire dall'applicazione???