android - 如何將特定的掛起意圖綁定到多個小部件上特定小部件上特定的按鈕 appwidget?

  显示原文与译文双语对照的内容
0 0

我有一個我正在使用的小部件,它允許用戶在屏幕上有更多的小部件實例。 每個部件id維護自己的配置文件。 然而對於一些為每個小部件to設置按鈕的代碼,我的代碼都不起作用。 下面是負責的代碼。 誰能看到問題在哪裡?


private void TieClicks(Context context){
 RemoteViews rViews;
 PendingIntent editPendingIntent= null;

//Intent updateintent = new Intent(context,SyncNoteWidget.class);
//updateintent.setAction(SyncNote_Action_Widget_Update);
//PendingIntent pendingupdateintent = PendingIntent.getBroadcast(context, 0, updateintent, 0);
//rViews.setOnClickPendingIntent(R.id.widgettextview, pendingupdateintent);
//
 AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(context);
 int[] ids = appWidgetManager.getAppWidgetIds(new ComponentName(context, SyncNoteWidget.class));
 for (int i =0;i <ids.length;i=i+1){
 int wId = ids[i];
 rViews = new RemoteViews(context.getPackageName(),R.layout.widget);

 editPendingIntent = makeControlPendingIntentActivity(context, wId);
 Log.v("syncnote","tieing" + String.valueOf(wId));
 rViews.setOnClickPendingIntent(R.id.widgeteditbutton, editPendingIntent);
 appWidgetManager.updateAppWidget(wId, rViews);

 editPendingIntent= null;

 }
 }
 private PendingIntent makeControlPendingIntentActivity(Context context,int appWidgetId) {

 Intent active = new Intent(context, EditNote.class);
 active.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK );
 active.setAction(com.ntu.way2fungames.syncnote.SyncNoteWidget.SyncNote_Action_Edit); 
 active.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId);
 return(PendingIntent.getActivity(context, 0, active, 0 ));
 }

时间: 原作者:

0 0

問題在於"PendingIntent 。getActivity"在使用第一個PendingIntent的原因。 上帝知道為什麼。修復是在下面,只是向調用添加一些隨機數據。


private PendingIntent makeControlPendingIntentActivity(Context context,int appWidgetId) {
 Intent active = null;
 active = new Intent(context, EditNote.class);
 active.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK );
 active.addFlags(Intent.FLAG_ACTIVITY_MULTIPLE_TASK );
 active.setAction(com.ntu.way2fungames.syncnote.SyncNoteWidget.SyncNote_Action_Edit); 
 active.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId);
 PendingIntent pi =PendingIntent.getActivity(context,(int)(Math.random()*10000), active, 0 );
 Log.v("syncnote","PI:"+pi.toString());
 return(pi);
 }

原作者:
0 0

如果你包含要創建的日誌條目,它將有幫助:


 Log.v("syncnote","tieing" + String.valueOf(wId));

這可以回答重要的問題: 有多少值位於: int [] id?

R.layout.widget 中的內容?

你的小部件的圖片也會幫助你。 一張圖片是值得的。

原作者:
...