2013-10-27 37 views
0

我想爲我的整個小部件佈局設置一個setOnClickPendingIntent,但是我還沒有找到一種方法來執行此操作。我想這是非常微不足道的,但我忽略了它。目前,我正在爲佈局中的每個視圖設置一個意圖,這使得我的代碼非常混亂。下面是我在做什麼目前:如何爲整個小部件佈局設置setOnClickPendingIntent?

remView = new RemoteViews(ctxContext.getPackageName(), R.layout.initial); 
Intent ittRetry = new Intent(ctxContext, SettingsActivity.class); 
ittRetry.setAction(AppWidgetManager.ACTION_APPWIDGET_CONFIGURE); 
ittRetry.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, intInstance); 
PendingIntent pitRetry = PendingIntent.getBroadcast(ctxContext, 0, ittRetry, PendingIntent.FLAG_UPDATE_CURRENT);   
remView.setOnClickPendingIntent(R.id.widget_rows, pitRetry); 
remView.setOnClickPendingIntent(R.id.widget_message, pitRetry); 
wigManager.updateAppWidget(intInstance, remView); 

回答

1

目前我設置爲我的每一個佈局意見的意圖,這使得我的代碼很凌亂

但是,那是你的唯一的選擇。您必須致電setOnClickPendingIntent()才能獲得您希望通過點擊獲得控制權的每個窗口小部件。

歡迎您使用循環,將您的小部件ID放在數組中並迭代該數組,每遍調用setOnClickPendingIntent()

+0

對不起,我不夠詳細。我並不是說我的小部件實例上的每個小部件的佈局中的每個視圖項目都是這樣。 –

+0

@MridangAgarwalla:不,你非常清楚,我的回答涵蓋了你的情況。您好像在您的應用中抱怨兩行代碼,您在其中調用'setOnClickPendingIntent()'。您可以將小部件ID(例如'R.id.widget_rows')放在數組中並循環使用,而不是有兩個專用的'setOnClickPendingIntent()'調用。恕我直言,這將是非常有用的,除非在非常複雜的應用程序小部件。 – CommonsWare