use*_*307 5 android fragment kotlin startactivityforresult
我尝试在片段中获得结果。片段中的代码
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
if (resultCode != Activity.RESULT_OK) return
val bundle = data?.extras
when (requestCode) {
LicenseActivationActivity.REQUEST_RESULT_COUNT_ENTERPRISE ->
//
}
}
Run Code Online (Sandbox Code Playgroud)
这段代码被调用。而且还有 DrawerActivity 中的 onActivityResult 方法
是否只在片段中调用 onActivityResult ?
更新
DrawerActivity 中的这段代码
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
if (resultCode == Activity.RESULT_OK) {
WayBillsActivity.start(this)
finish()
}
}
Run Code Online (Sandbox Code Playgroud)
不知为何,也满足了,不过是在fragment中的onActivityResult之后。
在你的 Activity 中调用这个
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
for (Fragment fragment : getSupportFragmentManager().getFragments()) {
fragment.onActivityResult(requestCode, resultCode, data);
}
}
Run Code Online (Sandbox Code Playgroud)
然后调用fragment
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
//super.onActivityResult(requestCode, resultCode, data); comment this unless you
}
Run Code Online (Sandbox Code Playgroud)
小智 2
在抽屉活动中添加代码
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
fragment.super.onActivityResult(requestCode, resultCode, data)
}
**fragment.super.onActivityResult(requestCode, resultCode, data)**
Run Code Online (Sandbox Code Playgroud)
然后你的onActivityResult
片段方法称为
归档时间: |
|
查看次数: |
5486 次 |
最近记录: |