2013-01-10 36 views
5

Tôi đang làm việc trên một ứng dụng thay thế nhà. Tôi đang cố gắng để thêm một OnClickListener đến một nút với Java nhưng cách tôi đang cố gắng tạo ra lỗi:Hoạt động bắt đầu của Android với onClickListener?

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

Mã này là bên trong bộ chuyển đổi MyPagerAdapter.

Đây là những gì tôi đang cố gắng:

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

Làm thế nào tôi có thể thêm một OnClickListener đến một nút mở ứng dụng khác, ví dụ như com.android.contacts.ContactApplication?


EDIT: Đây là mã đầy đủ, với những gì tôi đang cố gắng ngay bây giờ:

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

gì chính xác là mã này trong? Một hoạt động? –

+0

Nó thuộc về PagerAdapter. – lisovaccaro

+0

Dù sao, hãy sử dụng 'v.getContext(). StartActivity (intent);' để khởi động ứng dụng và câu trả lời của Grid để thực hiện đúng mục đích. (Đã xóa câu trả lời vì nó không thực sự phục vụ một mục đích). –

Trả lời

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

Làm thế nào để giúp đỡ? Đọc câu hỏi của anh ấy. – dymmeh

+0

@dymmeh Đó là cách thích hợp để khởi chạy ứng dụng danh bạ. –

+0

@ A - C - Mục đích không được đề cập đến. Câu trả lời của ông bao gồm gọi startActivity mặc dù câu hỏi nêu rõ rằng startActivity không thể truy cập trong phạm vi hiện tại. Các chỉnh sửa của anh ấy đã khắc phục tất cả điều đó, mặc dù – dymmeh

1
(findViewById(R.id.button)).setOnClickListener(new OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     startActivity(new Intent(v.getContext(), ACTIVITY.class)); 
    } 
}); 
Các vấn đề liên quan