2014-11-18 3 views
-1

내 listview에서 검색 표시 줄을 구현했지만 이제 내 결과를 어떻게 표시 할 수 있습니까? (내 서버에서 호스팅되는) xml 파일에서 값을 가져옵니다.이 파일에서 검색 할 수있는 방법이 있습니다. 결과를 보여 주시겠습니까? 내 아이디어는 첫 번째 문자에서 검색Android리스트 뷰의 특정 항목 검색

답변

0

유용하지만, 내 XML 파일은 자주이 방법을 사용할 수 없습니다, 내 목록보기를 입력하는 동안 그 결과를 보여줄 필요가 (예를 들어, 액션 바를 사용) 스크립트입니다.

@Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     // Get the view from listview_main.xml 
     setContentView(R.layout.listview_main); 

     // Execute DownloadXML AsyncTask 
     new DownloadXML().execute(); 
    } 

    // DownloadXML AsyncTask 
    private class DownloadXML extends AsyncTask<Void, Void, Void> { 

     @Override 
     protected void onPreExecute() { 
      super.onPreExecute(); 
      // Create a progressdialog 
      mProgressDialog = new ProgressDialog(MainActivity.this); 
      //Disable dismiss ultil load end 
      mProgressDialog.setCanceledOnTouchOutside(false); 
      // Set progressdialog message 
      mProgressDialog.setMessage("Loading..."); 
      mProgressDialog.setIndeterminate(false); 
      // Show progressdialog 
      mProgressDialog.show(); 
     } 

     @Override 
     protected Void doInBackground(Void... params) { 
      // Create an array 
      arraylist = new ArrayList<HashMap<String, String>>(); 

      XMLParser parser = new XMLParser(); 
      // Retrieve nodes from the given URL address 
      String xml = parser.getXmlFromUrl("http://192.172.11.18/prova/xmlparseimgtxt.xml"); 
      // Retrive DOM element 
      Document doc = parser.getDomElement(xml); 

      try { 
       // Identify the element tag name 
       NodeList nl = doc.getElementsByTagName("my_elements"); 
       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(zeroElement, parser.getValue(e, zeroElement)); 
        map.put(firstElement, parser.getValue(e, firstElement)); 
        map.put(secondElement, parser.getValue(e, secondElement)); 
        map.put(thirdElement, parser.getValue(e, thirdElement)); 
        map.put(fourthElement, parser.getValue(e, fourthElement)); 

        // adding HashList to ArrayList 
        arraylist.add(map); 

       } 
      } catch (Exception e) { 
       Log.e("Error", e.getMessage()); 
       e.printStackTrace(); 
      } 
      return null; 
     } 

     @Override 
     protected void onPostExecute(Void args) { 
      // Locate the listview in listview_main.xml 
      listview = (ListView) findViewById(R.id.listview); 
      // Pass the results into ListViewAdapter.java 
      adapter = new ListViewAdapter(MainActivity.this, arraylist); 
      // Binds the Adapter to the ListView 
      listview.setAdapter(adapter); 
      // Close the progressdialog 
      mProgressDialog.dismiss(); 
     } 
    }