Java 如何为整个小部件布局设置SetOnClickPendingEvent?

Java 如何为整个小部件布局设置SetOnClickPendingEvent?,java,android,android-widget,android-pendingintent,Java,Android,Android Widget,Android Pendingintent,我想为我的整个小部件布局设置一个setonclickpendingent,但我还没有找到一种方法来实现这一点。我想这是件很琐碎的事,但我忽略了。目前,我正在为布局中的每个视图设置一个意图,这使得我的代码非常混乱。以下是我目前正在做的事情: remView = new RemoteViews(ctxContext.getPackageName(), R.layout.initial); Intent ittRetry = new Intent(ctxContext, SettingsActivit

我想为我的整个小部件布局设置一个
setonclickpendingent
,但我还没有找到一种方法来实现这一点。我想这是件很琐碎的事,但我忽略了。目前,我正在为布局中的每个视图设置一个意图,这使得我的代码非常混乱。以下是我目前正在做的事情:

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);
目前,我正在为布局中的每个视图设置一个意图,这使得我的代码非常混乱

然而,这是你唯一的选择。您必须调用
setonClickPendingEvent()
,以便在单击中控制每个小部件


欢迎您使用循环,将您的小部件ID放入一个数组中,并在该数组上迭代,在每次过程中调用
setonclickpendingent()

您可以在布局xml末尾的所有小部件视图上创建一个透明按钮,覆盖整个小部件(匹配\u parent很重要!):


我对这个问题的解决方案(在原始问题之后的几年)是为主布局设置一个id。因此,我的布局有一个RelativeLayout,这有一个id,我可以使用它来实现挂起的意图。

很抱歉,我不够详细。我不是指我的小部件实例上的每个视图,而是指小部件布局中的每个视图项目。@MridangAgarwalla:不,你非常清楚,我的回答涵盖了你的场景。您似乎在抱怨应用程序中有两行代码,您在其中调用
setonClickPendingContent()
。您可以将小部件id(例如,
R.id.widget_行
)放入一个数组中,并在其上循环,而不是使用两个专用的
setonclickpendingent()
调用。我的意思是,除了在非常复杂的应用程序小部件中,这将不是很有用。
<Button
android:id="@+id/button"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/transparent"/>
[...]
views.setOnClickPendingIntent(R.id.button, pendingIntent);
[...]