2013-05-19 20 views
12

Sono nuovo nello sviluppo Android. Sto tentando di aprire il nuovo Activity nel mio metodo OnClickListener. Cosa devo scrivere e come funziona il metodo OnClickListener?Pulsante Android onClickListener

+0

Intento intento = nuovo intento (questo, NewActivit.class); startActivity (intento); –

+0

fare qualche ricerca prima di porre la tua domanda qui –

risposta

31

Questa attività può essere eseguita utilizzando uno dei blocchi predefiniti principale di Android denominato Intenti e uno dei metodi public void startActivity (Intent intent) appartenente alla classe Attività.

Un intento è una descrizione astratta di un'operazione da eseguire. Può essere utilizzato con startActivity per avviare un'attività, broadcastIntent per inviarlo a qualsiasi componente BroadcastReceiver interessato e startService (Intent) o bindService (Intent, ServiceConnection, int) per comunicare con un servizio in background.

Un intent offre la possibilità di eseguire il binding a runtime tardivo tra il codice in diverse applicazioni. Il suo uso più significativo è il lancio di attività, dove può essere pensato come la colla tra le attività. È fondamentalmente una struttura dati passiva che contiene una descrizione astratta di un'azione da eseguire.

sottoporre la documentazione ufficiale - http://developer.android.com/reference/android/content/Intent.html

public void startActivity (Intent intent) - usato per lanciare una nuova attività.

Così si supponga di avere due classi di attività -

  1. PresentActivity - Questa è la vostra attività in corso da cui si vuole andare la seconda attività.

  2. NextActivity - Questa è la tua prossima attività su cui vuoi muoverti.

Così l'intento sarebbe stato così

Intent(PresentActivity.this, NextActivity.class) 

Infine questo sarà il codice completo

public class PresentActivity extends Activity { 
    protected void onCreate(Bundle icicle) { 
    super.onCreate(icicle); 

    setContentView(R.layout.content_layout_id); 

    final Button button = (Button) findViewById(R.id.button_id); 
    button.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) { 
       // Perform action on click 
       Intent activityChangeIntent = new Intent(PresentActivity.this, NextActivity.class); 

       // currentContext.startActivity(activityChangeIntent); 

       PresentActivity.this.startActivity(activityChangeIntent); 
      } 
      }); 
    } 
} 

Spero che tu possa capire la società e se si trovano ad affrontare qualsiasi problema a tornare per me qui solo. Sempre felice di aiutare.

1

facile:

attività di lancio (onclick handler)

Intent myIntent = new Intent(CurrentActivity.this, NextActivity.class); 
myIntent.putExtra("key", value); //Optional parameters 
CurrentActivity.this.startActivity(myIntent); 

sulla nuova attività:

@Override 
protected void onCreate(Bundle savedInstanceState) { 
Intent intent = getIntent(); 
String value = intent.getStringExtra("key"); //if it's a string you stored. 

e aggiungere la tua nuova attività nel AndroidManifest.xml:

<activity android:label="@string/app_name" android:name="NextActivity"/> 
10
//create a variable that contain your button 
Button button = (Button) findViewById(R.id.button); 

    button.setOnClickListener(new OnClickListener(){ 
     @Override 
     //On click function 
     public void onClick(View view) { 
      //Create the intent to start another activity 
      Intent intent = new Intent(view.getContext(), AnotherActivity.class); 
      startActivity(intent); 
     } 
    }); 
3

utilizzare OnClicklistener oppure è possibile utilizzare android: onClick = "myMethod" nel codice xml del pulsante da cui si aprirà un nuovo layout. Quindi, quando viene cliccato quel pulsante, la tua funzione myMethod verrà richiamata automaticamente. La tua funzione myMethod in classe assomiglia a questa.

public void myMethod(View v) { 
Intent intent=new Intent(context,SecondActivty.class); 
startActivity(intent); 
} 

E in questo SecondActivity.class impostare il nuovo layout in contentview.

Problemi correlati