0

我需要使用RecyclerView. 在我的适配器中,我正在使用以下代码:

@Override
    public void onBindViewHolder(ViewHolder viewHolder, final int i) {
        final GridItem nature = mItems.get(i);
        viewHolder.tvspecies.setText(nature.getName());
        viewHolder.imgThumbnail.setImageResource(nature.getThumbnail());

        viewHolder.imgThumbnail.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                Log.i("CLick",nature.toString());
                try {
                    wallpaper.setResource(mItems.get(i));
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
        });
    }

所以onClick我应该将图像设置为墙纸,但在“setResource”字下我有这个错误:

The method setResource(int) in the type WallpaperManager is not applicable for the arguments (GridItem)

如何将从适配器中选择的项目设置为墙纸?

4

1 回答 1

0

您的程序不工作的原因是,该方法setResource(int)int类型作为参数而不是GridItem类型。

从文档中阅读更多内容

将当前系统壁纸更改为给定资源中的位图。资源作为原始数据流打开并复制到壁纸中;它必须是有效的 PNG 或 JPEG 图像。

还要确保您的应用有权在清单中设置壁纸

此方法要求调用者持有 SET_WALLPAPER 权限。

于 2015-05-14T18:09:52.107 回答