2014-08-27 38 views
1

我正在开发一个appWidget,并且遇到了我的第一个大问题。
我需要发送到我的应用程序(CoreActivity),用户点击图像X或图像Y(等)。
什么是这个形象(在这个例子中:餐厅或出租车)。PendingIntent发送错误的意图/ putExtra

我的问题是:当用户点击图片时,它总是发送最后一个putExtra(在这个例子中的出租车)。当我点击logo_1或image1_1时,它总是发送“Taxi”到我的CoreActivity。

你知道为什么吗?因为我找不到任何地方这里有什么不对...

感谢您可以带给我的所有帮助,感谢您花费的时间(即使阅读这个问题^^)。
祝您有愉快的一天。

final RemoteViews views = new RemoteViews(context.getPackageName(),R.layout.widget_demo_4l_4c); 

Intent logo_1Intent = new Intent(context, CoreActivity.class); 
Intent image1_1Intent = new Intent(context, CoreActivity.class); 
Intent image2_1Intent = new Intent(context, CoreActivity.class); 

image1_1Intent.putExtra(CoreActivity.EXTRA_WIDGET_KEY, "Restaurant"); 
image2_1Intent.putExtra(CoreActivity.EXTRA_WIDGET_KEY, "Taxi"); 


PendingIntent logo_1PendingIntent = PendingIntent.getActivity(context, 0, logo_1Intent, PendingIntent.FLAG_UPDATE_CURRENT); 
PendingIntent image1_1PendingIntent = PendingIntent.getActivity(context, 0, image1_1Intent, PendingIntent.FLAG_UPDATE_CURRENT); 
PendingIntent image2_1PendingIntent = PendingIntent.getActivity(context, 0, image2_1Intent, PendingIntent.FLAG_UPDATE_CURRENT); 

views.setOnClickPendingIntent(R.id.logo_1, logo_1PendingIntent); 
views.setOnClickPendingIntent(R.id.image1_1, image1_1PendingIntent); 
views.setOnClickPendingIntent(R.id.image2_1, image2_1PendingIntent); 

appWidgetManager.updateAppWidget(appWidgetId, views); 

回答

3
PendingIntent logo_1PendingIntent = PendingIntent.getActivity(context, 0, logo_1Intent, PendingIntent.FLAG_UPDATE_CURRENT); 
PendingIntent image1_1PendingIntent = PendingIntent.getActivity(context, 2, image1_1Intent, PendingIntent.FLAG_UPDATE_CURRENT); 
PendingIntent image2_1PendingIntent = PendingIntent.getActivity(context, 3, image2_1Intent, PendingIntent.FLAG_UPDATE_CURRENT); 

你需要在每个PendingIntent设置不同的标识符。

+0

我现在就试试这个。 – Yoko 2014-08-27 14:55:29

+0

我完美解决了我的问题。 非常感谢您的帮助先生! – Yoko 2014-08-27 15:06:13