2015-01-08 2 views
1

res/raw/data.xml에 expandableListView 데이터를 만들려고했지만 연결 방법을 모르겠습니다. 그 전에, 나는이 같은 활동에서 직접 데이터를 사용하고 있습니다 :res/raw/data.xml을 expandablelistview에 표시하십시오.

private void prepareListData() { 
     listDataHeader = new ArrayList<String>(); 
     listDataChild = new HashMap<String, List<String>>(); 

     // Adding child data 
     listDataHeader.add("Basic"); 
     listDataHeader.add("Data Types"); 

     // Adding child data 
     List<String> top250 = new ArrayList<String>(); 
     top250.add("Introduction"); 
     top250.add("Data Types"); 
     top250.add("Schema"); 
     top250.add("Use in Ajax"); 
     top250.add("Examples"); 

     List<String> nowShowing = new ArrayList<String>(); 
     nowShowing.add("Overview"); 
     nowShowing.add("Array"); 
     nowShowing.add("Boolean"); 
     nowShowing.add("Object"); 
     nowShowing.add("Number"); 
     nowShowing.add("String"); 
     nowShowing.add("False"); 
     nowShowing.add("True"); 
     nowShowing.add("Null"); 

     listDataChild.put(listDataHeader.get(0), top250); // Header, Child data 
     listDataChild.put(listDataHeader.get(1), nowShowing); 

    } 
} 

나는 res/raw/data.xml에서 데이터를 추가 할 수 있습니다. data.xml 코드는 다음과 같습니다.

<?xml version="1.0" encoding="UTF-8"?> 
    <entries> 
     <section name="Basics"> 
      <entry id="1"> 
       <name>Introduction</name> 
       <htmlfilename>basics_intro</htmlfilename> 
      </entry> 
      <entry id="2"> 
       <name>Data Types</name> 
       <htmlfilename>basics_datatypes</htmlfilename> 
      </entry> 
      <entry id="3"> 
       <name>Schema</name> 
       <htmlfilename>basics_schema</htmlfilename> 
      </entry> 
      <entry id="3"> 
       <name>Use in Ajax</name> 
       <htmlfilename>basics_ajaxuse</htmlfilename> 
      </entry> 
      <entry id="4"> 
       <name>Cheat Sheet</name> 
       <htmlfilename>basics_cheatsheet</htmlfilename> 
      </entry> 
      <entry id="4"> 
       <name>Examples</name> 
       <htmlfilename>basics_examples</htmlfilename> 
      </entry> 
     </section> 
     <section name="Data Types"> 
      <entry id="5"> 
       <name>Overview</name> 
       <htmlfilename>datatypes_overview</htmlfilename> 
      </entry> 
      <entry id="6"> 
       <name>Array</name> 
       <htmlfilename>datatypes_array</htmlfilename> 
      </entry> 
      <entry id="7"> 
       <name>Boolean</name> 
       <htmlfilename>datatypes_boolean</htmlfilename> 
      </entry> 
      <entry id="8"> 
       <name>Object</name> 
       <htmlfilename>datatypes_object</htmlfilename> 
      </entry> 
      <entry id="9"> 
       <name>Number</name> 
       <htmlfilename>datatypes_number</htmlfilename> 
      </entry> 
      <entry id="10"> 
       <name>String</name> 
       <htmlfilename>datatypes_string</htmlfilename> 
      </entry> 
      <entry id="11"> 
       <name>true</name> 
       <htmlfilename>datatypes_true</htmlfilename> 
      </entry> 
      <entry id="11"> 
       <name>false</name> 
       <htmlfilename>datatypes_false</htmlfilename> 
      </entry> 
      <entry id="11"> 
       <name>null</name> 
       <htmlfilename>datatypes_null</htmlfilename> 
      </entry> 
     </section> 
    </entries> 

아무도 도와 줄 수 있습니까?

답변

0

현재 데이터를 listDataHeaderlistDataChild에 정적으로 추가하고 있습니다. 대신 res

1 이동 data.xml 파일 assets 디렉토리로 xml 파일 변경에서 prepareListData() 방법을 ArrayList를하고 HashMap의 데이터를 채우기 위해. 자산에서 InputStream으로 파일을 읽기위한

2. 사용 AssetManager를 : ArrayList를하고 HashMap의 모든 노드의 데이터를 가져 오기 위해 SAX 또는 DOM 파서를 사용하여

AssetManager assetManager = YourAcivityClassName.this.getAssets(); 
    InputStream inputStream = assetManager.open("data.xml"); 

3. 구문 분석 XML. SAXParser을 사용하여 XML을 pasring하기위한 다음 자습서를 참조하십시오. Android parse XML file from Assets or internal/external storage

+0

하지만 자산 파일에 이미 html 파일이 있습니다. –

+0

@markshadow : 자산에 하나 이상의 파일을 배치 할 수 있습니다. –

+0

괜찮습니다.하지만 확장형 목록보기로 표시되지 않습니다. –

관련 문제