从Activity获取字符串时出现片段错误

时间:2017-02-27 15:23:12

标签: android android-studio

我用以下内容发起了一项活动:

Intent intent = new Intent(
                    getApplicationContext(),
                    Hosting.class
            );
            intent.putExtra("host", item.getTitle());
            startActivity(intent);

现在我在这个活动上有5个片段带有标签,在片段5上我需要获得主机字符串:

host = getArguments()。getString(" host");

(在正常活动中,我使用getIntent().getStringExtra("host")获取此字符串,但片段中没有...

但是app崩溃了:

 java.lang.RuntimeException: An error occurred while executing doInBackground()
                      at android.os.AsyncTask$3.done(AsyncTask.java:325)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String android.os.Bundle.getString(java.lang.String)' on a null object reference

为什么这样?这是我的第一个Android应用程序..

2 个答案:

答案 0 :(得分:2)

您可能没有在片段的创建参数中设置host字符串。你可以这样做,也可以在你的片段代码中继续使用getIntent().getStringExtra("host"),先致电getActivity()

host = getActivity().getIntent().getStringExtra("host")

答案 1 :(得分:0)

当您处理片段并希望在片段和活动之间进行交互时,即,来回解析数据,检查点击等,通常建议创建一个接口并在活动中实现它。

供参考,您可以查看this video ,这是非常有帮助的