Android 在活动/片段之间传递参数

Android 在活动/片段之间传递参数,android,android-fragments,android-intent,android-activity,parameters,Android,Android Fragments,Android Intent,Android Activity,Parameters,安卓开发者你好 我试图在两个不同的活动之间传递论点,但我陷入了一个问题,我无法摆脱它 基本上,我正在尝试将两个字符串从我的MainActivity中包含的片段MainFragment传递到我的次要活动SecondaryActivity 我可以将这两个字符串从其他活动传递到第二活动,而不会出现问题。我甚至可以通过我的通知服务做到这一点,但我不能从特定的片段中做到这一点 通过调试,我可以看到我传递的第一个字符串已正确接收,但第二个字符串未正确接收。变量也被设置了,所以我不想传递“null”值,我在调

安卓开发者你好

我试图在两个不同的活动之间传递论点,但我陷入了一个问题,我无法摆脱它

基本上,我正在尝试将两个字符串从我的MainActivity中包含的片段MainFragment传递到我的次要活动SecondaryActivity

我可以将这两个字符串从其他活动传递到第二活动,而不会出现问题。我甚至可以通过我的通知服务做到这一点,但我不能从特定的片段中做到这一点

通过调试,我可以看到我传递的第一个字符串已正确接收,但第二个字符串未正确接收。变量也被设置了,所以我不想传递“null”值,我在调试器上检查了它

这是我的部分代码

MainFragment.java(发送方)

SecondaryActivity.java(接收器)

任何帮助都将不胜感激


谢谢。

我会解释所有情况

将数据从活动传递到片段时可以使用
设置参数
在提交转换之前,获取一个包含片段实例上的数据函数的捆绑包

示例

 DetailsFragment dFragment = new DetailsFragment();
                    Bundle bundle = new Bundle();
                    bundle.putParcelable(Intent.EXTRA_TEXT, movies);
                    dFragment.setArguments(bundle);
                    getSupportFragmentManager().beginTransaction().replace(R.id.panel_two_id, dFragment).commit(); 
第二种情况是


在片段中,可以调用getActivity()。这将允许您访问创建片段的活动。显然,您可以从那里调用活动中的任何类型的访问器方法。

您的代码应该可以从我看到的情况下运行,我注意到您将onClickListener设置为执行一个“new”语句。您确定这是唯一一次在同一文本视图上执行此操作吗?

使用接口传递数据。示例:我正在将数据传递给另一个活动,而不是包含我的片段的活动。这是一个独特的过程我所做的是将字符串从一个片段传递给一个活动,而不是相反。您的第一个示例仍然有效吗?为什么我不能像往常一样使用bundle呢?看起来很奇怪,但这是我的问题:我的TextView有两个监听器:ListenerA(像我想的那样,输入两个参数);ListenerB(输入一个参数,这就是为什么我无法在代码中调试它)。所以,分心错误,谢谢你的帮助。
public class SecondaryActivity extends AppCompatActivity {    
    public final static String PLAY_WORD = "com.etc.author.appname.STRING1";
    public final static String PLAY_IPA = "com.etc.author.appname.STRING2";
            ...
            @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.secondary_activity);

            Intent intent = getIntent();
            Bundle args = intent.getExtras();

            first_string = args.getString(ID_FIRST_STRING);
            second_string = args.getString(ID_SECOND_STRING);
        ....
        }
        ....
    }
 DetailsFragment dFragment = new DetailsFragment();
                    Bundle bundle = new Bundle();
                    bundle.putParcelable(Intent.EXTRA_TEXT, movies);
                    dFragment.setArguments(bundle);
                    getSupportFragmentManager().beginTransaction().replace(R.id.panel_two_id, dFragment).commit();