2010-08-28 44 views

Trả lời

10

Bạn cần phải thiết lập một onClickpendingIntent trên widget của bạn

Intent intent = new Intent(context, ExampleActivity.class); 
PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, 0); 
// Get the layout for the App Widget and attach an on-click listener to the button 
RemoteViews views = new RemoteViews(context.getPackageName(),R.layout.appwidget_provider_layout); 
views.setOnClickPendingIntent(R.id.button, pendingIntent); 

Kiểm tra này ra

Processing more than one button click at Android Widget

+0

Liên kết đầu tiên đã chết. –

+0

Câu hỏi phụ, bạn có thể trích xuất hoạt động cho một ứng dụng cụ thể không? (có lẽ tôi không biết lớp nào là ExampleActivity.class) – RelativeGames

5

Bao gồm mã này trong phương thức onUpdate() của lớp WidgetProvider.

for(int j = 0; j < appWidgetIds.length; j++) 
{ 
    int appWidgetId = appWidgetIds[j]; 

    try { 
     Intent intent = new Intent("android.intent.action.MAIN"); 
     intent.addCategory("android.intent.category.LAUNCHER"); 

     intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION); 
     intent.setComponent(new ComponentName("your Application package", 
      "fully qualified name of main activity of the app")); 
     PendingIntent pendingIntent = PendingIntent.getActivity(
      context, 0, intent, 0); 
     RemoteViews views = new RemoteViews(context.getPackageName(), 
      layout id); 
     views.setOnClickPendingIntent(view Id on which onclick to be handled, pendingIntent); 
    appWidgetManager.updateAppWidget(appWidgetId, views); 
    } catch (ActivityNotFoundException e) { 
      Toast.makeText(context.getApplicationContext(), 
        "There was a problem loading the application: ", 
        Toast.LENGTH_SHORT).show(); 
    } 

} 
+0

Hoạt động tuyệt vời! Cảm ơn bạn Shivanand Darur –

+3

"gói Ứng dụng của bạn", "tên đủ điều kiện hoạt động chính của ứng dụng" có nghĩa là 'intent.setComponent (new ComponentName (context.getPackageName(), MainActivity.class.getName());' –

Các vấn đề liên quan