2013-01-10 3 views
5

私は家の交換用のアプリケーションに取り組んでいます。私は、JavaとボタンにOnClickListenerを追加しようとしているが、私はしようとしている方法は、エラーを生成します。AndroidはonClickListenerでアクティビティを開始しますか?

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

このコードは、アダプタMyPagerAdapterの内側にあります。

これは私がしようとしているものです:

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

私は例com.android.contacts.ContactApplicationのためのように、別のアプリケーションを開くボタンにOnClickListenerを追加することができますどのように?


EDIT:このコードはである丁度何

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

: これは私が今何をしようとしていますとの完全なコード、ありますか?アクティビティ? –

+0

PagerAdapterにあります。 – lisovaccaro

+0

とにかく、 'v.getContext()。startActivity(intent);'を使ってアプリケーションを起動し、グリッドの答えを使ってインテントを適切に行います。 (実際に目的を果たしていないので、答えを削除しました)。 –

答えて

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

これはどのように助けになっているのですか?彼の質問を読んでください。 – dymmeh

+0

@dymmehこれは、連絡先アプリケーションを起動する適切な方法です。 –

+0

@ A - C - 意図は問題ではありませんでした。彼の答えには、startActivityが現在のスコープでアクセス可能でないことを明確に述べているにもかかわらず、startActivityを呼び出すことが含まれていました。彼の編集はそれをすべて修正しましたが – dymmeh

1
(findViewById(R.id.button)).setOnClickListener(new OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     startActivity(new Intent(v.getContext(), ACTIVITY.class)); 
    } 
}); 
関連する問題