2013-01-10 13 views
5

Sto lavorando a un'applicazione di sostituzione a casa. Sto cercando di aggiungere un OnClickListener a un pulsante con Java, ma il modo in cui sto provando produce errore:Attività di avvio Android con onClickListener?

The method startActivity(Intent) is undefined for the type new View.OnClickListener(){}

Questo codice è all'interno dell'adattatore MyPagerAdapter.

questo è quello che sto cercando:

buttonItem.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      Intent intent = new Intent("com.android.contacts.ContactsApplication"); 
      startActivity(intent); 
     } 
    }); 

Come posso aggiungere un OnClickListener a un pulsante che apre un'altra applicazione, come ad esempio com.android.contacts.ContactApplication?


EDIT: Questo è il codice completo, con che cosa sto provando in questo momento:

public class MyPagerAdapter extends PagerAdapter { 

    @Override 
    public Object instantiateItem(View container, int position) { 
     Context context = container.getContext(); 
     LinearLayout layout = new LinearLayout(context); 
     SharedPreferences sharedPrefs = PreferenceManager.getDefaultSharedPreferences(context); 
     TextView textItem = new TextView(context); 
     Button buttonItem = new Button(context); 
     buttonItem.setText("Aceptar"); 

     // This is what I'm trying, (crashes on click) 
     buttonItem.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       Intent intent = new Intent("com.android.contacts.ContactsApplication"); 
       v.getContext().startActivity(intent); 
      } 
     }); 
+0

Che cosa è esattamente questo codice in? Un'attività? –

+0

È sul PagerAdapter. – lisovaccaro

+0

In ogni caso, utilizzare 'v.getContext(). StartActivity (intent);' per avviare l'applicazione e la risposta di Grid per rendere l'intento corretto. (Cancellata la risposta dal momento che in realtà non ha uno scopo). –

risposta

9
buttonItem.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     Intent i = new Intent(); 
     i.setComponent(new ComponentName("com.android.contacts", "com.android.contacts.DialtactsContactsEntryActivity")); 
     i.setAction("android.intent.action.MAIN"); 
     i.addCategory("android.intent.category.LAUNCHER"); 
     i.addCategory("android.intent.category.DEFAULT"); 
     v.getContext().startActivity(i); 
    } 
+1

Come si suppone possa aiutare? Leggi la sua domanda. – dymmeh

+0

@dymmeh Questo è il modo corretto per avviare l'applicazione Contatti. –

+0

@ A - C - L'intento non era in discussione. La sua risposta includeva la chiamata startActivity nonostante la domanda affermasse chiaramente che startActivity non era accessibile nell'ambito corrente. Le sue modifiche hanno risolto tutto ciò, però – dymmeh

1
(findViewById(R.id.button)).setOnClickListener(new OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     startActivity(new Intent(v.getContext(), ACTIVITY.class)); 
    } 
}); 
Problemi correlati