Android 来自xml文件的Webview
我想从xml文件打开一个链接。但是字符串有一些问题 这是我的密码Android 来自xml文件的Webview,android,xml,webview,xml-parsing,Android,Xml,Webview,Xml Parsing,我想从xml文件打开一个链接。但是字符串有一些问题 这是我的密码 public class WebA extends Activity { private WebView webView; static final String URL = "http://example.com/1/http.xml"; static final String KEY_SONG = "song"; static final String KEY_ID = "id";
public class WebA extends Activity {
private WebView webView;
static final String URL = "http://example.com/1/http.xml";
static final String KEY_SONG = "song";
static final String KEY_ID = "id";
static final String KEY = "link_url";
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
final ArrayList<HashMap<String, String>> songsList = new ArrayList<HashMap<String, String>>();
XMLParser parser = new XMLParser();
String xml = parser.getXmlFromUrl(URL); // getting XML from URL
Document doc = parser.getDomElement(xml); // getting DOM element
NodeList nl = doc.getElementsByTagName(KEY_SONG);
for (int i = 0; i < nl.getLength(); i++) {
// creating new HashMap
HashMap<String, String> map = new HashMap<String, String>();
Element e = (Element) nl.item(i);
// adding each child node to HashMap key => value
map.put(KEY_ID, parser.getValue(e, KEY_ID));
map.put(KEY, parser.getValue(e, KEY));
songsList.add(map);
}
setContentView(R.layout.webcontent);
webView = (WebView) findViewById(R.id.webView);
webView.getSettings().setJavaScriptEnabled(true);
webView.setInitialScale(1);
webView.loadUrl(KEY);
}
}
公共类WebA扩展活动{
私有网络视图;
静态最终字符串URL=”http://example.com/1/http.xml";
静态最终字符串键\u SONG=“SONG”;
静态最终字符串键\u ID=“ID”;
静态最终字符串KEY=“link\u url”;
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
最终ArrayList歌曲列表=新ArrayList();
XMLParser=新的XMLParser();
字符串xml=parser.getXmlFromUrl(URL);//从URL获取xml
Document doc=parser.getDomeElement(xml);//获取DOM元素
NodeList nl=doc.getElementsByTagName(KEY_-SONG);
对于(int i=0;ivalue
put(KEY_ID,parser.getValue(e,KEY_ID));
put(KEY,parser.getValue(e,KEY));
歌曲列表。添加(地图);
}
setContentView(R.layout.webcontent);
webView=(webView)findviewbyd(R.id.webView);
webView.getSettings().setJavaScriptEnabled(true);
webView.setInitialScale(1);
loadUrl(键);
}
}
有一个字符串问题,我不明白:我如何解决它
这是我的.xml代码
<?xml version="1.0" encoding="utf-8"?>
<music>
<song>
<id>1</id>
<link_url>http://www.youtube.com/watch?v=NlmezywdxPI</link_url>
</song>
</music>
1.
http://www.youtube.com/watch?v=NlmezywdxPI
以下是我打开webview时看到的图片:
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>"
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
"
和webcontent.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<WebView
android:id="@+id/webView"
android:layout_width="fill_parent"
android:layout_height="238dp" />
</LinearLayout>
我想我的字符串有问题。我没有看到错误,只需要从xml中调用字符串url。您正试图加载保存在变量
键中的url,但此变量只保存值链接\u url
:
webView.loadUrl("link_url");
您应该像这样加载url:
webView.loadUrl(songsList.get(0).get(KEY));
当然,如果您希望在ArrayList
中为第一个项目创建url,那么如果ArrayList
中有多个元素,则需要创建更好的机制来加载不同的url
我不明白你为什么要在ArrayList中包装HashMap
。发布你的xml布局,错误日志中有错误吗?也发布。你为什么要调用setContentView两次?也发布你的android清单-我怀疑你在清单中没有使用internet的权限。我没有看到错误。只是需要d字符串从xml中调用url。非常感谢您的帮助。