2014-08-27 56 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