1

以下应用程序按预期工作:

import android.app.Activity
import android.content.Intent
import android.graphics.BitmapFactory
import android.app.WallpaperManager

class ChwallActivity < Activity
  def onCreate(state)
    super
    setContentView R.layout.main
  end

  $Override
  def onStart
    super
    Intent intent = Intent.new(Intent.ACTION_PICK)
    intent.setType "image/*"
    startActivityForResult Intent.createChooser(intent, "Select Picture"), 0
  end

  $Override
  def onActivityResult(requestCode, resultCode, data:Intent)
    super
    thumb = BitmapFactory.decodeFile "/storage/sdcard0/download/foo.jpg"
    manager = WallpaperManager.getInstance self
    manager.setBitmap thumb
  end
end

这会在无限循环中执行画廊选择器,这是不可取的。但是,如果我在函数finish末尾插入 a ,似乎不会被调用:壁纸不会更改为 foo.jpg。画廊第二次启动时是否被调用?到底是怎么回事?onStart()onActivityResult()onActivityResult()

4

3 回答 3

2

将以下代码移动到onCreate它应该可以正常工作

Intent intent = Intent.new(Intent.ACTION_PICK)
intent.setType "image/*"
startActivityForResult Intent.createChooser(intent, "Select Picture"), 0
于 2013-02-15T15:45:18.667 回答
0

OnStart()当 Activity 再次可见时再次调用,在选取器 Activity 完成后再次启动选取器 Activity,依此类推。

您不应该将该逻辑放入其中,onStart()而是让用户事件启动选择器。

或者

您可以使用boolean标志来跟踪您是否已经选择了图片。

于 2013-02-15T16:04:41.830 回答
0

投入finish工作onActivityResult()

于 2013-02-15T15:55:38.333 回答