这是一个获取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);
}
}
答案 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 = "";