我试图将字符串从片段传递到活动,然后将该活动传递到片段。从片段到活动时,我得到的是null

时间:2019-12-07 18:53:49

标签: java android android-fragments

问题正如标题所述。当选择导航抽屉中的某个项目时,发送片段将以字符串形式将url发送给主要活动

发送Frag的代码:

@Override
public boolean onNavigationItemSelected(MenuItem item) {
    String newurl = webview.getUrl();
    System.out.println(newurl);
    Intent intent = new Intent(getActivity().getBaseContext(), MainActivity.class);
    intent.putExtra("newurl", newurl);
    getActivity().startActivity(intent);
    return true;
}

接收活动的代码:

@Override
public boolean onNavigationItemSelected(MenuItem item) {
    int itemId = item.getItemId();
    //creating fragment object
    Fragment fragment = null;
    String newurl = this.getIntent().getExtras().getString("newurl");
    System.out.println(newurl);
    //initializing the fragment object which is selected
    if (itemId == R.id.nav_assignments) {
        Fragment fragment1 =  new HomeFragment();
        ((HomeFragment) fragment1).setName(newurl);
        displaySelectedFragment(fragment1);

    } else if (itemId == R.id.nav_grades) {
            fragment = new GalleryFragment();
            displaySelectedFragment(fragment);

    } else if (itemId == R.id.nav_people) {
            fragment = new SlideshowFragment();
            displaySelectedFragment(fragment);

    } else if (itemId == R.id.nav_syllabus) {
            fragment = new ToolsFragment();
            displaySelectedFragment(fragment);

    } else if (itemId == R.id.nav_discussions) {
            fragment = new ShareFragment();
            displaySelectedFragment(fragment);

    } else if (itemId == R.id.nav_settings) {
            fragment = new SendFragment();
            displaySelectedFragment(fragment);
    }
    DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
    drawer.closeDrawer(GravityCompat.START);
    return true;
}

我一直在使用System.out.println调试url何时为空,并且发送片段中的那段代码没有初始化。当我按导航抽屉中的项目时,应用程序崩溃。我该如何解决? (顺便说一下,一些额外的代码是因为我正在将数据从发送碎片发送到主活动,然后再发送到另一个碎片)

0 个答案:

没有答案