Android - 通过PendingIntent发送额外内容

时间:2012-05-24 13:19:23

标签: android android-intent widget

我在点击后在循环中渲染窗口小部件项目我想启动DetailsActivity(它应该将ID发送到该活动)

Cursor currentCursor = dbHelper.getWidgetCursor();
for(int k=0; k < currentCursor.getCount(); k++){
    currentCursor.moveToPosition(k);

    RemoteViews rw = new RemoteViews(context.getPackageName(), R.layout.w_calendar_item);

    Intent intentRow = new Intent(context, DetailsActivity.class);
    Log.v("a", "index: "+currentCursor.getInt(currentCursor.getColumnIndex(SqlHelper.COLUMN_ID)));
    intentRow.putExtra("index", currentCursor.getInt(currentCursor.getColumnIndex(SqlHelper.COLUMN_ID)));
    PendingIntent pendingIntentRow = PendingIntent.getActivity(context, 1, intentRow, PendingIntent.FLAG_CANCEL_CURRENT);
    rw.setOnClickPendingIntent(R.id.w_li, pendingIntentRow);

    views.addView(R.id.w_list, rw);
}

我的问题是,DetailsActivity总是收到索引103(这是列表中的最后一个),无论我点击哪个项目都无关紧要

1 个答案:

答案 0 :(得分:0)

这是因为您在PendingIntent.getActivity中设置了PendingIntent.FLAG_CANCEL_CURRENT标志。对于每一行,Android将取消之前的待定意图,因此最后一个将自然“生存”。也许它只是删除那个标志?我对RemoteViews没有任何经验,所以不确定如果没有帮助,最好的办法是什么。

相关问题