Android 绑定到MainActivity.java

Android 绑定到MainActivity.java,android,android-intent,android-recyclerview,bundle,Android,Android Intent,Android Recyclerview,Bundle,因此,我在主活动中有一个recycler视图,只要我点击一个元素,我就可以转到另一个屏幕,并使用捆绑包发送信息(例如单击的recycler视图中元素的名称)。一切正常 现在,我试图返回到主活动,并将信息发送到将在祝酒词中显示的主活动 这是我在第二个活动中要回顾的内容的一部分 public void onClick(View view) { String text1 = ""; Bundle bundle = new Bundle()

因此,我在主活动中有一个recycler视图,只要我点击一个元素,我就可以转到另一个屏幕,并使用捆绑包发送信息(例如单击的recycler视图中元素的名称)。一切正常

现在,我试图返回到主活动,并将信息发送到将在祝酒词中显示的主活动

这是我在第二个活动中要回顾的内容的一部分

public void onClick(View view) {
                String text1 = "";
                Bundle bundle = new Bundle();
                bundle.putString("xyz1",editText.getText().toString());


                Intent returnIntent = new Intent(view.getContext(),MainActivity.class);
                returnIntent.putExtras(bundle);
                view.getContext().startActivity(returnIntent);
            }
这就是我在主要活动中所做的,在oncreate方法中检索它

//Bundle bundle = this.getIntent().getExtras();
        //String value = bundle.getString("xyz1");
        //Toast.makeText(this,value,Toast.LENGTH_SHORT).show();
我对它进行了评论,因为它崩溃了。我猜它崩溃是因为程序第一次启动时,没有捆绑包,没有来自第二个活动的信息

我可以反过来做(从主要活动到第二个活动)


如何执行此操作?

在访问捆绑包中的参数之前,请尝试执行空检查

private static final String EXTRA_MY_STRING = "xyz1";

if (getIntent().getExtras() != null)
{
    Bundle extras = getIntent().getExtras();
    String value = extras.getString(EXTRA_MY_STRING);
    if (!TextUtils.isEmpty(value))
    {
       // show Toast
    }
}

此外,发布日志有助于我们查看崩溃的来源。

您可以通过几种不同的方式对其进行归档

您的第一个活动(不清楚该活动的名称)您应该这样使用它

Intent intent = new Intent(FirstActivity.this, SecondActivity.class);
EditText nameText = (EditText) findViewById(R.id.query_textbox);
intent.putExtra("key", nameText.getText());
startActivity(intent);
下面是我将如何完成这个问题。我认为它的格式是最好的,并且很容易被其他可能正在阅读您的代码的人理解(遵循良好的编程格式)

然后在您的SecondActivity.class(我认为在您的情况下应该是MainActivity.class)

如果您想使用格式良好的代码,应该如下所示

Intent intent = getIntent();
// Get the extras (if there are any)
Bundle extras = intent.getExtras();
if (extras != null) {
    if (extraStr.containsKey("key")) {
        String extraStr = extras.getString("key");
        // TODO: Do something.
    }
}
或者也可以使用Intent方法直接访问您的附加内容

String extraStr = getIntent().getExtras("key");
我会在这里附上一些参考资料,如果你愿意的话,它们会帮助你对此有更多的了解。谢谢

参考资料


你能给我们看一下坠机日志吗?@vinnie我在哪里看到的?抱歉,Android 100%新手在Android Studio IDE的底部,查找
Logcat
选项卡。一旦应用程序崩溃,并在设备/模拟器上按“关闭应用程序”,您将看到崩溃数据的转储。如果是例外,则通常为红色。如果在IDE底部看不到Logcat选项卡,请转到
查看-->工具窗口-->Logcat
String extraStr = getIntent().getExtras("key");