2

我有一个用于 Honeycomb 及更高版本的 ListView 小部件。

我在 onUpdate 的顶部有一个带有 setOnClickPendingIntents 的栏,它们都工作正常。

然而,在我的 RemoteViews getViewAt() 函数中的 ListViewAdapter 中,setOnClickPendingIntents 永远不会触发。

奇怪的是它在 ICS 中运行良好,但在我的 JellyBean 设备上停止了。

我的代码如下

@Override
public RemoteViews getViewAt(final int position) {
    final RemoteViews views = new RemoteViews(context.getPackageName(), layout);
            final PendingIntent home_intent = PendingIntent.getActivity(context, 0, new Intent(
            INTENT_ACTION_HOME), Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT);
    views.setOnClickPendingIntent(R.id.row_item, home_intent);
}

在小部件的 onUpdate 函数中触发的这种完全相同的意图可以正常工作,只是在 ListView 适配器中时不行。

4

1 回答 1

5

从文档

公共无效 setOnClickPendingIntent (int viewId, PendingIntent pendingIntent)

相当于调用 setOnClickListener(android.view.View.OnClickListener) 来启动提供的 PendingIntent。当设置集合中项目的点击动作时(例如 ListView、StackView 等),此方法将不起作用。相反,将 {@link RemoteViews#setPendingIntentTemplate(int, PendingIntent) 与 RemoteViews#setOnClickFillInIntent(int, Intent) 结合使用。

http://developer.android.com/reference/android/widget/RemoteViews.html

于 2012-11-10T05:11:50.680 回答