Autore Topic: Più bottoni in una activity  (Letto 800 volte)

Offline YvesB

  • Nuovo arrivato
  • *
  • Post: 18
  • Respect: 0
    • Github
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Nexus
  • Play Store ID:
    Young Peacock
  • Sistema operativo:
    Linux Mint 15
Più bottoni in una activity
« il: 28 Aprile 2013, 21:24:27 CEST »
0
Salve a tutti! Sono alle mie prime armi con Java e  Android. Ho creato la mia mainActivity con due bottoni cliccabili che aprono due relativi layout e attività. Il problema è che non so come "trattare" i due bottoni nella sintassi della libreria superiore. Ecco la sintassi (errata)
Codice (Java): [Seleziona]
package com.xxxx.xxxx;    
   
import android.os.Bundle;    
import android.view.View;    
import android.view.View.OnClickListener;    
import android.widget.Button;    
import android.app.Activity;  
import android.content.Intent;    
   
public class MainActivity extends Activity {    
    @Override    
    public void onCreate(Bundle savedInstanceState) {    
        super.onCreate(savedInstanceState);    
        setContentView(R.layout.page1);    
        Button btnHome=(Button)findViewById(R.id.button1);    
        btnHome.setOnClickListener(new OnClickListener(){    
                    @Override    
                    public void onClick(View arg0) {    
                      // definisco l'intenzione  
                      Intent openPage1 = new Intent(MainActivity.this,Page1.class);  
                      // passo all'attivazione dell'activity page1.java  
                      startActivity(openPage1);  
                    }    
        });    
    }    


    public void onCreate1(Bundle savedInstanceState) {    
        super.onCreate(savedInstanceState);    
        setContentView(R.layout.page2);    
        Button btnHome=(Button)findViewById(R.id.button2);    
        btnHome.setOnClickListener(new OnClickListener(){    
                    @Override    
                    public void onClick(View arg0) {    
                 
                      Intent openPage2 = new Intent(MainActivity.this,Page2.class);  
                 
                      startActivity(openPage2);  
                    }    
        });    
    }    
}  

Ho inserito due onCreate cosa che a quanto pare non va quindi dovrei settare prima i bottoni ma non so il codice giusto! Grazie mille a tutti

Post unito: 28 Aprile 2013, 22:16:20 CEST
Ok ho modificato ma il risultato non cambia  :-(
Codice (Java): [Seleziona]
public class MainActivity extends Activity {    
    @Override    
    public void onCreate(Bundle savedInstanceState) {    
        super.onCreate(savedInstanceState);    
        setContentView(R.layout.page1);    

        Button btnuno=(Button)findViewById(R.id.button1);    
        Button btndue=(Button)findViewById(R.id.button2);  

        btnuno.setOnClickListener(new OnClickListener(){    
                                       public void onClick(View arg0) {    
                                       Intent openPage1 = new Intent(MainActivity.this,Page1.class);  
                 
                      startActivity(openPage1);  
                    }    
        });    
   
        setContentView(R.layout.page2);    
        btndue.setOnClickListener(new OnClickListener(){    
                                       public void onClick(View arg0) {    
                                       Intent openPage2 = new Intent(MainActivity.this,Page2.class);  
                 
                      startActivity(openPage2);  
                    }    
        });    
    }    
}  

Sono molto dubbioso dei setContentView. A causa del mio pc testo l'applicazione direttamente su dispositivo e ho interruzioni all'avvio. Eclipse non mi da errori e nemmeno io li riscontro ma non penso sia colpa delle altre due .class perché almeno il MainActivity me lo doveva aprire senza problemi!
« Ultima modifica: 28 Aprile 2013, 22:16:20 CEST da FabrizioBill, Reason: Merged DoublePost »

Offline GabMarioPower

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 606
  • Respect: +152
    • Github
    • Google+
    • gabrielemariotti
    • GabMarioPower
    • Mostra profilo
  • Play Store ID:
    GAB+MARIO+DEV
  • Sistema operativo:
    Ubuntu 14.04 , Win 10
Re:Più bottoni in una activity
« Risposta #1 il: 29 Aprile 2013, 09:07:09 CEST »
0
Innanzitutto ti consiglio di leggere la documentazione dell'Activity.
http://developer.android.com/guide/components/activities.html

Dopo di che, nel tuo caso non ha senso fare questo:
Codice (Java): [Seleziona]
 setContentView(R.layout.page1);
 setContentView(R.layout.page2);
Tu stai definendo il layuot dell'Activity di partenza, non di quelle che lancerai.

A questo punto, sarebbe utile che posti il logcat, o almeno il codice di Page1 e Page2.
Infine, prova ad utilizzare il debug e posizionarti sul onClick() dei due Button.

Offline ivanp

  • Nuovo arrivato
  • *
  • Post: 12
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung galaxy next turbo, Samsung Galaxy note
  • Play Store ID:
    Shakesoft
  • Sistema operativo:
    Win 7; Centos 6.2
Re:Più bottoni in una activity
« Risposta #2 il: 29 Aprile 2013, 09:43:54 CEST »
0
Innanzitutto ti consiglio di leggere la documentazione dell'Activity.
http://developer.android.com/guide/components/activities.html

Dopo di che, nel tuo caso non ha senso fare questo:
Codice (Java): [Seleziona]
 setContentView(R.layout.page1);
 setContentView(R.layout.page2);
Tu stai definendo il layuot dell'Activity di partenza, non di quelle che lancerai.

A questo punto, sarebbe utile che posti il logcat, o almeno il codice di Page1 e Page2.
Infine, prova ad utilizzare il debug e posizionarti sul onClick() dei due Button.

Come detto sopra da Gab leggiti il link che ti spiega come funziona un'activity.

Per quanto riguarda la semantica di quello che vuoi te è più o meno così:
Codice: [Seleziona]
public class MainActivity extends Activity {   
    @Override   
    public void onCreate(Bundle savedInstanceState) {   
        super.onCreate(savedInstanceState);   
        setContentView(R.layout.MainActivity);   

        Button btnuno=(Button)findViewById(R.id.button1);   
        Button btndue=(Button)findViewById(R.id.button2); 
        String param1 = "a";
        String param2 = "b";
        btnuno.setOnClickListener(new OnClickListener(){   
                                       public void onClick(View arg0) {   
//                                     con finish() arresti l'esecuzione dell'activity per evitare che facendo click sul tasto indietro l'esecuzione ti ritorni all'activity precedente cioè a MainActivity.
                                        finish();
//                                     ti dichiari il nuovo Intent
                                           Intent i = new Intent(MainActivity.this,Page1.class);
//                                     con il metodo putExtra() associ un valore ad una chiave che poi passerai al page1, questo è facoltativo.
                                                   i.putExtra("param1", param1);
//                                     fai partire l'activity appena definita.
                                           startActivity(i);
                    }   
        });   
   
       
        btndue.setOnClickListener(new OnClickListener(){   
                                       public void onClick(View arg0) {   
                                       finish();
                                     Intent i = new Intent(MainActivity.this,Page2.class);
                                             i.putExtra("param2", param2);
                                     startActivity(i);
                    }   
        });   
    }   


quando l'esecuzione passa all'activity page1 sarà lei a impostare il layout nel suo create.
che sarà una cosa simile a questa:

Codice: [Seleziona]
public class page1 extends Activity {   
    @Override   
    public void onCreate(Bundle savedInstanceState) {   
        super.onCreate(savedInstanceState);   
        setContentView(R.layout.page1);   
//     nella maniera seguente recupereremo il nostro valore se è stato passato.
        String param1Passato = getIntent().getExtras().getString("param1");
..........

Spero che ti sia stato di aiuto.
Ivan

Offline YvesB

  • Nuovo arrivato
  • *
  • Post: 18
  • Respect: 0
    • Github
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Nexus
  • Play Store ID:
    Young Peacock
  • Sistema operativo:
    Linux Mint 15
Re:Più bottoni in una activity
« Risposta #3 il: 29 Aprile 2013, 14:48:43 CEST »
0
Grazie mille ad entrambi! Ora funziona tutto ^_^