Re: [問題] 使用 startActivityForResult

作者: rex921 (小雷)   2021-10-04 22:30:08
※ 引述《shihyu (shihyu)》之銘言:
: 我想使用 startActivityForResult 做登入
: 但是我class 沒繼承 activity 有什麼方法可以呼叫到 startActivityForResult?
: 如果再啟一個 activity 但去呼叫 startActivityForResult 但 activity 不跳出UI 這方法可行?
: 我查網路上啟動不顯示 UI
: AndroidManifest.xml
: 改成 android:theme="@android:style/Theme.NoDisplay" 但我測試不行
: 謝謝
貼這裡好了...排版苦手
https://pastebin.com/fH9wuB9u
你說你的類別繼承AppCompatActivity
那我假設你的類別會長這樣..
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
//你在onCreate宣告一個launcher
val registerLauncher =
registerForActivityResult(ActivityResultContracts.StartActivityForResult()) {
ActivityResult ->
if (ActivityResult.resultCode == Activity.RESULT_OK) {
//當launcher成功要執行的函數
getIntentData(ActivityResult.data)
}
}
}
//點擊按鈕觸發launcher
findViewById<ImageView>(R.id.img).setOnClickListener {
Intent(Intent.ACTION_GET_CONTENT).also {
registerLauncher.launch(it)
}
}
}
作者: shihyu (shihyu)   2021-10-08 21:36:00
請問這樣作法可以讓 UI 不跳出來?
作者: rex921 (小雷)   2021-10-10 23:54:00
你最初的問題是沒繼承activity,而是 AppCompatActivity上述的code是可以讓你呼叫到StartActivityForResult如果你用回原本的單一activity,不要另外lanuch一個,然後看你在什麼情況去執行registerLauncher.launch(it)https://reurl.cc/Yj0jrD ,這篇不知道你嘗試過沒有?

Links booklink

Contact Us: admin [ a t ] ucptt.com