URL 值未传递给另一个活动
Posted
技术标签:
【中文标题】URL 值未传递给另一个活动【英文标题】:URL value is not passing to another activity 【发布时间】:2012-11-25 11:12:48 【问题描述】:这是一个获取 rss.xml 文件并在列表视图中显示主题标题的应用程序。当单击列表视图的项目(主题标题)时,它将在 Contenurl 活动的 webview 中打开。但是页面是空白的。这意味着“feedUri”没有将值传递给 Contenturl.java 如果我用http://google.com 之类的任何地址替换“feedUri”,那么它工作正常。然后,如果我单击列表视图的任何项目,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);
【问题讨论】:
请看我的回答,它会解决你的问题。 【参考方案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 中将其作为字符串接收。然后解决方案是从第一个活动中将其作为字符串发送
【讨论】:
替换 w.putExtra(org.rss.mywindows.Contenturl.URL,feedUri);与 w.putExtra(org.rss.mywindows.Contenturl.URL,feedUri);解决了... 但两者都是您在评论中发布的相同字符串 抱歉,替换为 w.putExtra(org.rss.mywindows.Contenturl.URL,feedUri);与 w.putExtra(org.rss.mywindows.Contenturl.URL,feedUri.toString());【参考方案2】:写下面的代码而不是你的onListItemClick()
代码。
Uri feedUri = Uri.parse(myRssFeed.getItem(position).getLink());
Intent w = new Intent(this, Contenturl.class);
w.putExtra("Uri",feedUri);
startActivity(w);
并使用下面的代码从第二个活动的意图中检索 url。
Bundle bdl = getIntent().getExtras();
mUri = bdl.getString("Uri");
【讨论】:
【参考方案3】:在活动中,您将空字符串作为键传递
String turl = getIntent().getStringExtra(URL);
public static final String URL = "";
【讨论】:
以上是关于URL 值未传递给另一个活动的主要内容,如果未能解决你的问题,请参考以下文章