URL值未传递给另一个活动

时间:2012-12-07 09:30:56

标签: android android-intent android-activity webview

这是一个获取rss.xml文件并在列表视图中显示主题标题的应用程序。当单击listview的项目(主题标题)时,它将在Contenurl活动的webview中打开。但页面是空白的。这意味着“feedUri”没有将值传递给Contenturl.java 如果我将“feedUri”替换为http://google.com之类的任何地址,那么它工作正常。然后,如果我点击列表视图的任何项目,google.com将在webview中打开(在我的应用程序中)。但是如何通过“feedUri”传递url值?我是否需要在Contenurl.java文件中进行任何更改?请帮忙

这是MainActivity.java的一部分

 @Override
 protected void onListItemClick(ListView l, View v, int position, long id) {


  Uri feedUri = Uri.parse(myRssFeed.getItem(position).getLink());
  Intent w = new Intent(this, Contenturl.class);
  w.putExtra(org.rss.mywindows.Contenturl.URL,feedUri);
  startActivity(w);

这里是Contenturl.java

public class Contenturl extends Activity {

    public static final String URL = "";
    private static final String TAG = "WebscreenClass";

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.contenturl);

        String turl = getIntent().getStringExtra(URL);
        Log.i(TAG, " URL = "+turl);

        WebView webview = new WebView(this);
        setContentView(webview);

        // Simplest usage: No exception thrown for page-load error
        webview.loadUrl(turl);  

    }
}

3 个答案:

答案 0 :(得分:1)

使用

w.putExtra(org.rss.mywindows.Contenturl.URL,feedUri.toString());

而不是

w.putExtra(org.rss.mywindows.Contenturl.URL,feedUri);

并在您的Contenturl活动中

 @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.contenturl);

        String turl = getIntent().getStringExtra(URL);

        Uri feedUri = Uri.parse(turl);

因为您从第一个Activity发送Uri并在另一个Activity中将其作为String接收。然后解决方案从第一个活动

发送它作为字符串

答案 1 :(得分:0)

编写下面的代码而不是onListItemClick()代码。

Uri feedUri = Uri.parse(myRssFeed.getItem(position).getLink());
Intent w = new Intent(this, Contenturl.class);
w.putExtra("Uri",feedUri);
startActivity(w);

并使用以下代码从第二个活动中的意图中获取反向网址。

Bundle bdl = getIntent().getExtras();
mUri = bdl.getString("Uri");

答案 2 :(得分:0)

在您将空字符串作为键

传递的活动中
String turl = getIntent().getStringExtra(URL);

public static final String URL = "";