RemoteViews setOnClickPendingIntent不会为Widget ListView触发

时间:2012-11-10 00:12:47

标签: android android-widget

我有一个用于Honeycomb及以上的ListView Widget。

我在onUpdate中使用setOnClickPendingIntents在顶部有一个栏,它们都可以正常工作。

但是在RemoteViews中的ListViewAdapter getViewAt()函数中,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适配器中。

1 个答案:

答案 0 :(得分:5)

来自文档

public void setOnClickPendingIntent(int viewId,PendingIntent pendingIntent)

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

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