2013-01-10 17 views
5

Ich arbeite an einer Home Replacement-Anwendung. Ich versuche, eine OnClickListener auf eine Schaltfläche mit Java hinzufügen, aber die Art, wie ich bin versucht, produziert Fehler:Android Startaktivität mit onClickListener?

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

Dieser Code innerhalb Adapter ist MyPagerAdapter.

Das ist, was ich versuche:

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

Wie kann ich ein OnClickListener auf eine Schaltfläche hinzufügen, die eine andere Anwendung geöffnet wird, wie zum Beispiel com.android.contacts.ContactApplication?


EDIT: Dies ist der vollständige Code, mit dem, was ich jetzt bin versucht:

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

Was genau ist dieser Code in? Eine Aktivität? –

+0

Es ist auf dem PagerAdapter. – lisovaccaro

+0

Wie auch immer, verwenden Sie 'v.getContext(). StartActivity (intent);', um die Anwendung zu starten, und Grid's answer, um die Absicht richtig zu machen. (Die Antwort wurde gelöscht, da sie eigentlich keinen Zweck erfüllt). –

Antwort

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

Wie soll das helfen? Lesen Sie seine Frage. – dymmeh

+0

@dymeh Das ist der richtige Weg, um die Kontakte-Anwendung zu starten. –

+0

@ A - C - Die Absicht war nicht in Frage. Seine Antwort beinhaltete den Aufruf von startActivity, obwohl klargestellt wurde, dass startActivity im aktuellen Umfang nicht verfügbar war. Seine Änderungen behoben das alles jedoch – dymmeh

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