如何将数据从弹出窗口 window 发送到带有片段的选项卡式 activity?

how to send data from popup window to a tabbed activity having fragments?

mainActivity has button. After button is clicked a popup message show having a button and a TextInputLayout. data is sent to a tabbed acticity having 2 fragments and the data is shown in textview of first fragment. Error is the data wont show in the textview while running

2 个片段的适配器--

public class adapter extends FragmentPagerAdapter {
    public adapter(@NonNull FragmentManager fm) {
        super(fm);
    }

    @NonNull
    @Override
    public Fragment getItem(int position) {
        Fragment fragment;

        if (position == 1) {
            fragment = new SecondFragment();
        } else {
            fragment = new FirstFragment();
        }
        return fragment;
    }

    @Override
    public int getCount() {
        return 2;
    }

    @Nullable
    @Override
    public CharSequence getPageTitle(int position) {
        String title = null;
        if (position == 0) {
            title = "TextView";
        } else if (position == 1) {
            title = "Listview";
        }

        return title;
    }
}

mainActivity(点击按钮弹出 window)

 myDialog = new Dialog(this);
    }

    //for for joining match
    public void ShowPopup(View view) {
        myDialog.setContentView(R.layout.popup);
        myDialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
        myDialog.show();

        name = myDialog.findViewById(R.id.ig_name);
        String igname = Objects.requireNonNull(name.getEditText()).getText().toString();

        entry = myDialog.findViewById(R.id.entry);
        entry.setOnClickListener(v -> {
            Intent intent = new Intent(getApplicationContext(), secondActivity.class);
            intent.putExtra("igname", igname);
            startActivity(intent);
            finish();
        });
    }
}

我的第一个片段

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    // Inflate the layout for this fragment
    View view = inflater.inflate(R.layout.fragment_first, container, false);

    secondActivity activity = (secondActivity) getActivity();
    TextView output = view.findViewById(R.id.textshow);

    Bundle results = activity.getMyData();
    String value1 = results.getString("value");

    output.setText(value1);

    return view;
}

secondActivity(意图从弹出window转移)

public class secondActivity extends AppCompatActivity {
    private String name;
    TabLayout tabLayout;
    ViewPager viewPager;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_second);

        viewPager = findViewById(R.id.view_pager);
        viewPager.setAdapter(new adapter(getSupportFragmentManager()));

        tabLayout = findViewById(R.id.tabs_layout);
        tabLayout.setupWithViewPager(viewPager);

        Intent intent = getIntent();
        name = intent.getExtras().getString("igname");

    }

    public Bundle getMyData() {
        Bundle bundle = new Bundle();
        bundle.putString("value", name);
        return bundle;
    }

}

在 onClickListner 中获取“igname”字符串值,并在完成 activity 之前关闭对话框。

        entry.setOnClickListener(v -> {
        String igname = Objects.requireNonNull(name.getEditText()).getText().toString();
        Intent intent = new Intent(getApplicationContext(), secondActivity.class);
        intent.putExtra("igname", igname);
        startActivity(intent);
        finish();
    });