【问题标题】:How to intent from activity to specific fragment如何从活动意图到特定片段
【发布时间】:2021-03-03 03:29:54
【问题描述】:

我有一个带有底部导航栏菜单的主菜单, 在导航栏菜单的最后一个选项卡中,我创建了一个按钮来指向其他活动,

An Activity with BottomNavbar 中的此按钮打开另一个活动

  @OnClick(R.id.scanQR)
    public void onScan() {
        startActivity(new Intent(getContext(),Action_camera.class));
    }

在其他活动中,我只是使用它来获取 QRcode 并将 QRcode.result (String) 发送回我在这种情况下使用的最后一个片段 Fragment No 3

如果我从片段 3 对父活动使用意图,它只会显示片段没有一个

@OnClick(R.id.cariqr)
    public void onClickqr() {
        Bundle args= new Bundle();
        args.putString("kodebmnscan",textView.getText().toString().trim());
        frag_asset_admin bundle = new frag_asset_admin();
        bundle.setArguments(args);
        FragmentManager fragmentManager = getSupportFragmentManager();
        fragmentManager.beginTransaction().replace(R.id.container, bundle).commit();
    }

如何从活动返回到导航栏菜单的最后一个选项卡

【问题讨论】:

    标签: android android-fragments android-intent android-activity


    【解决方案1】:

    我没有正确理解您的问题,但据我所知,我可以帮助您了解如何浏览片段和活动:

    要从一个活动转移到另一个活动或从片段转移到活动,您可以使用简单的意图:

    Intent intent=new Intent(CurrentActivity.this,NextActivity.class);
    startActivity(intent);
    

    要在 ViePager 中加载片段,只需使用 FragmentManager 即可:

    getSupportFragmentManager().beginTransaction().replace(R.id.ViewPagerID, context).commit();
    

    因此,要开始一项活动以从中获取结果,您需要将 QR 码的结果返回到家庭活动中。您将执行以下步骤:

    开始活动以获得结果:

    startActivityForResult(new Intent(context,QRCODE.class),REQUEST_CODE);
    

    发回数据

    Intent returnIntent = new Intent();
    returnIntent.putExtra("result",result);
    setResult(Activity.RESULT_OK,returnIntent);
    finish();
    

    如果不想返回数据:

    Intent returnIntent = new Intent();
    setResult(Activity.RESULT_CANCELED, returnIntent);
    finish();
    

    在“homeactivity”中接收数据:

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) 
    {
    super.onActivityResult(requestCode, resultCode, data);
    
    if (requestCode == LAUNCH_SECOND_ACTIVITY) {
        if(resultCode == Activity.RESULT_OK){
            String result=data.getStringExtra("result");
        }
        if (resultCode == Activity.RESULT_CANCELED) {
            //Write your code if there's no result
        }
      } 
    }
    

    如果我没有回答您的问题,请详细说明您的问题,我会尽力回答。

    【讨论】:

    • 对不起我的英语,我第一次使用从 myhome 到活动的意图,现在我需要把它带回我的家,
    • 所以您需要将一些数据带回家庭活动?在这种情况下,我会更新答案。
    猜你喜欢
    • 2016-03-08
    • 1970-01-01
    • 2017-02-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多