我有一个用于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适配器中。
答案 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