Android 来自xml文件的Webview

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";

我想从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";
    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。非常感谢您的帮助。