【问题标题】:Setting wallpaper using onclick event of a button has no effect使用按钮的 onclick 事件设置壁纸无效
【发布时间】:2013-07-06 20:39:10
【问题描述】:

我正在关注tutorial 尝试使用按钮的 onclick 事件设置壁纸。

我的代码是,

private OnClickListener startListener = new OnClickListener(){

    public void onClick(View v){

        setBg();}

    public void setBg(){
        WallpaperManager myWallpaperManager
         = WallpaperManager.getInstance(getApplicationContext());
        try {
         myWallpaperManager.setResource(R.drawable.shrek);
        } catch (IOException e) {
         // TODO Auto-generated catch block
         e.printStackTrace();
        }

       }

我还设置了权限 SETWALLPAPER。

但是当我点击时,什么都没有发生。

这里有什么问题?

【问题讨论】:

  • 你用你的按钮注册你的监听器对象了吗?像 button.setonclickListener(your_listener_obj);
  • 你做了朋友。按钮开始 = (Button)findViewById(R.id.button1); start.setOnClickListener(startListener);

标签: android wallpaper


【解决方案1】:

在本教程中,他使用的 OnClickListener 有点不同:
buttonSetWallpaper.setOnClickListener(new Button.OnClickListener(){....

试试这个,应该可以的:

start.setOnClickListener(new Button.OnClickListener(){

   @Override
   public void onClick(View arg0) { 
    WallpaperManager myWallpaperManager = WallpaperManager.getInstance(getApplicationContext());
    try {
     myWallpaperManager.setResource(R.drawable.shrek);
    } catch (IOException e) {
     e.printStackTrace();
    }
   }});

编辑: 当然你也可以只在 OnClick 中调用你的方法而不是直接处理它

【讨论】:

  • 尝试在myWallpaperManager.setResource(R.drawable.shrek); 上方记录一些内容,然后您就会知道哪些有效,哪些无效
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多