java - 从片段开始活动,然后获取回调
问题描述
我正在尝试从我从片段中的意图开始的活动中获取回调。
finish();
我以为我可以用 onActivityResult 做到这一点,但是当我进行活动时它似乎没有被调用。这可能在片段中吗?
片段.java
@Nullable
@Override
public View onCreateView(final LayoutInflater inflater, @Nullable ViewGroup container, Bundle savedInstanceState) {
getActivity().setTitle("Waiver");
myView = inflater.inflate(R.layout.waiver_layout, container, false);
signBtn = myView.findViewById(R.id.signBtn);
signBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(getActivity(), SignatureActivity.class);
intent.putExtra("signatureAbleId", device.id);
intent.putExtra("signatureAbleType", "App\\Models\\Device");
startActivity(intent);
}
});
return myView;
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data){
Log.v("Activity", "The activity has finished");
if(resultCode == 200){
saveWaiver();
}
}
private void saveWaiver(){
Log.v("Save Waiver", "Saving waiver for you.");
}
签名活动.java
public class SignatureActivity extends AppCompatActivity {
private Button btnClear;
private Button btnSave;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
setContentView(R.layout.activity_signature);
Bundle bundle = getIntent().getExtras();
if(bundle != null){
signatureAbleId = bundle.getInt("signatureAbleId");
signatureAbleType = bundle.getString("signatureAbleType");
}
btnClear = findViewById(R.id.btnClear);
btnSave = findViewById(R.id.btnSave);
btnClear.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mSignaturePad.clear();
}
});
btnSave.setOnClickListener(new View.OnClickListener() {
setResult(200);
finish();
});
}
}
解决方案
用这个。它会帮助你
Intent intent = new Intent(getContext(), SignatureActivity.class);
代替
Intent intent = new Intent(getActivity(), SignatureActivity.class);
是的,需要改变:
startActivity 到 startActivityForResult
推荐阅读
- google-apps-script - 用于从一张纸复制并粘贴到另一张纸的数组
- php - 验证中的 Laravel 多元化
- docker - Nginx docker容器在不同位置提供相同的静态文件
- javascript - React中如何处理多个状态的数据来过滤数据
- python - 如何使用 websocket 库消除此错误?
- marklogic - marklogic 日志中的这个错误是什么 - XDMP-FORESTNOT、SVC-FILWRT、无效参数
- wpf - wpf - 添加的用户控件不在 ListView 的显示区域时,RelativeSource ActualWidth 绑定错误
- .htaccess - 如何通过 htaccess 强制 https
- vb.net - 具有数据绑定的级联组合框
- twilio - 跳过超时表达式字段在 Twilio Java Helper 库中不可用