2014-01-05 6 views
0

xml 파일에서 링크를 열고 싶습니다. 내가 그것을 어떻게 해결할 수 : 그러나 여기 문자열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); 
    } 
} 

, 나는 그것을 얻을하지 않습니다 내 코드

되는 몇 가지 문제는? 여기

여기 내 .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> 

이다 나는 웹보기 열 때 내가 무엇을보고의 사진입니다 :

enter image description here

<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이 필요합니다.

+0

XML 레이아웃 게시, 오류 로그에 오류가 있습니까? 저것을 배치하십시오. setContentView를 두 번 호출하는 이유는 무엇입니까? 귀하의 안드로이드 매니 페스트도 게시하십시오 - 귀하의 매니 페스트에서 인터넷을 사용할 수있는 권한이 없다고 생각됩니다. –

+0

xml에서 error.just string url이 필요합니다. – user2741142

답변

0

당신은 당신의 변수 KEY 내부에 저장되어있는 URL을로드하려고하고 있지만이 변수는 값 link_url 원하는 분야

webView.loadUrl("link_url"); 

대신 다음과 같이 URL을로드해야합니다 :

webView.loadUrl(songsList.get(0).get(KEY)); 

을 당신이 ArrayList 물론 첫 번째 항목에 대한 URL을 원한다는 것을 감안할 때. ArrayList에 하나 이상의 요소가있는 경우 다른 URL을로드하기위한 더 나은 메커니즘을 만들어야합니다.

HashMap<String, String>ArrayList 안에 포장하고 있는지 이해할 수 없습니다.

+0

도움 주셔서 대단히 감사합니다. – user2741142