Android问题将变量/意图传递给活动

Android问题将变量/意图传递给活动,android,string,android-activity,Android,String,Android Activity,好的,我搜索了这个网站,找到了很多关于如何将变量传递给另一个活动的教程,但是出于某种原因,除了空值之外,我仍然很难传递任何东西。 Logcat告诉我: E/AndroidRuntime( 747): java.lang.RuntimeException: Unable to start activity ComponentInfo{eu.sourceway.tutorials.BetterTabs/eu.sourceway.tutorials.BetterTabs.addonsBrowser}

好的,我搜索了这个网站,找到了很多关于如何将变量传递给另一个活动的教程,但是出于某种原因,除了空值之外,我仍然很难传递任何东西。 Logcat告诉我:

E/AndroidRuntime(  747): java.lang.RuntimeException: Unable to start activity ComponentInfo{eu.sourceway.tutorials.BetterTabs/eu.sourceway.tutorials.BetterTabs.addonsBrowser}: java.lang.NullPointerException
以下是我的开始活动:

        lv.setOnItemClickListener(new OnItemClickListener() {
      public void onItemClick(AdapterView<?> parent, View view,int position, long id) {
          String content = links[position];
            Intent addonPage = new Intent(ThirdTab.this,addonsBrowser.class);
            Bundle b = new Bundle();
            b.putString("passed", "http://google.com");
            addonPage.putExtras(b);
            startActivity(addonPage);

      }

    }); 
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

Bundle extras = getIntent().getExtras();

String URL = extras.getString("passed");

browser=new WebView(this);
browser.setWebViewClient(new WebViewClient());
browser.setInitialScale(55);

setContentView(browser);
browser.loadUrl(URL);



}
Intent addonPage = new Intent(ThirdTab.this,addonsBrowser.class);

addonPage.putExtra("passed", "http://google.com");

startActivityForResult(addonPage, 0);
private String message;

message = getIntent().getExtras().getString(passed);
我在Eclipse中设置了一个断点,并在第二个活动中查看了传递的Bundle变量“extras”,它显示为null,因此和logcat结果会得出结论,它没有被传递。 另外,如果您查看第一个活动,实际上URL最初是从ArrayList中提取的,然后存储在名为content的字符串变量中,但这也不会传递。这就是为什么我要把这个http://google.com“地址。我已经尝试了其他URL,但仍然无法通过它。我知道网络是有效的,因为我能够在网络视图中加载页面。 这样做的主要目的是创建一个包含网站链接的列表,并使用onItemClick将URL传递给另一个具有要加载的WebView的活动。 在ArraysList中生成URL是可行的。我已经能够填充列表。问题是,由于发送的变量为null,因此它会在我单击链接时强制关闭。
任何想法都非常感谢

在我的开始活动中尝试此选项:

        lv.setOnItemClickListener(new OnItemClickListener() {
      public void onItemClick(AdapterView<?> parent, View view,int position, long id) {
          String content = links[position];
            Intent addonPage = new Intent(ThirdTab.this,addonsBrowser.class);
            Bundle b = new Bundle();
            b.putString("passed", "http://google.com");
            addonPage.putExtras(b);
            startActivity(addonPage);

      }

    }); 
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

Bundle extras = getIntent().getExtras();

String URL = extras.getString("passed");

browser=new WebView(this);
browser.setWebViewClient(new WebViewClient());
browser.setInitialScale(55);

setContentView(browser);
browser.loadUrl(URL);



}
Intent addonPage = new Intent(ThirdTab.this,addonsBrowser.class);

addonPage.putExtra("passed", "http://google.com");

startActivityForResult(addonPage, 0);
private String message;

message = getIntent().getExtras().getString(passed);
在我的第二个活动中尝试此选项:

        lv.setOnItemClickListener(new OnItemClickListener() {
      public void onItemClick(AdapterView<?> parent, View view,int position, long id) {
          String content = links[position];
            Intent addonPage = new Intent(ThirdTab.this,addonsBrowser.class);
            Bundle b = new Bundle();
            b.putString("passed", "http://google.com");
            addonPage.putExtras(b);
            startActivity(addonPage);

      }

    }); 
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

Bundle extras = getIntent().getExtras();

String URL = extras.getString("passed");

browser=new WebView(this);
browser.setWebViewClient(new WebViewClient());
browser.setInitialScale(55);

setContentView(browser);
browser.loadUrl(URL);



}
Intent addonPage = new Intent(ThirdTab.this,addonsBrowser.class);

addonPage.putExtra("passed", "http://google.com");

startActivityForResult(addonPage, 0);
private String message;

message = getIntent().getExtras().getString(passed);
“检查此项只需将此代码放在您的第一个活动注释中:->直接捕获编辑文本不要将编辑文本保存在字符串中然后传递,如果要显示,则字符串不会传递。请参阅下面的示例”

“现在在第二个活动中,请注意:->您将首先尝试将活动的passeed字符串保存到活动中的另一个字符串中,然后它将不起作用,您应该直接将字符串传递到loadurl,而不是保存并传递到loadurl。”


请让我知道它是否对您有效。

因此,如果您在第二个活动中仅插入一个URL,它就有效了?无需创建新的捆绑包,只需执行addonPage.putExtra(“已通过”)即可。这肯定有效,我一直在活动之间传递字符串和整数。不,它不会自己读取URL。似乎我现在有一个更大的问题。尝试了你的建议和下面的建议,现在出于某种原因,当我运行应用程序时,我有一个覆盖整个应用程序的白色屏幕。我在一瞬间看到我的应用程序,然后得到一个白色屏幕最重要的是。很奇怪,这里提到的更改非常小,所以我还原了更改,仍然得到相同的结果。我可以运行我创建的其他应用程序,但不能再运行此应用程序。希望如果我能解决这个问题,我可以看看你的建议是否有效。不过谢谢你的帮助。