2012-07-11 23 views
-1

Android的解析數據 這個代碼解析XML數據的列表視圖我想打一個細節屏幕,該屏幕顯示的用戶名的細節時,點擊進入第一個屏幕中的列表項任何一個可以幫助這個?詳細列表項的從XML ::

import java.io.IOException; 
import java.io.InputStream; 
import java.net.MalformedURLException; 
import java.net.URL; 
import java.util.ArrayList; 
import java.util.List; 

import org.xmlpull.v1.XmlPullParser; 
import org.xmlpull.v1.XmlPullParserException; 
import org.xmlpull.v1.XmlPullParserFactory; 

import android.app.Activity; 
import android.app.ListActivity; 
import android.content.Intent; 
import android.net.Uri; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.ArrayAdapter; 
import android.widget.ListView; 

public class LastActivity extends ListActivity { 
    /** Called when the activity is first created. */ 

    List links; 
    List names; 
    List uniUrl; 
    @Override 
    protected void onListItemClick(ListView l, View v, int position, long id) { 
     // TODO Auto-generated method stub 
     super.onListItemClick(l, v, position, id); 
     Uri uri = Uri.parse((String) uniUrl.get(position)); 

      Intent intent = new Intent(Intent.ACTION_VIEW, uri); 

      startActivity(intent); 

    } 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     links=new ArrayList(); 
     names=new ArrayList(); 
     uniUrl=new ArrayList(); 
     try{ 
      URL url=new URL(webservice); 
      XmlPullParserFactory factory = XmlPullParserFactory.newInstance(); 
      factory.setNamespaceAware(false); 
      XmlPullParser xpp = factory.newPullParser(); 
      xpp.setInput(getInputStream(url), "UTF_8"); 
      boolean insideItem = false; 




        // Returns the type of current event: START_TAG, END_TAG, etc.. 

      int eventType = xpp.getEventType(); 

      while (eventType != XmlPullParser.END_DOCUMENT) { 

        if (eventType == XmlPullParser.START_TAG) { 



         if (xpp.getName().equalsIgnoreCase("university")) { 

          insideItem = true; 

         } else if (xpp.getName().equalsIgnoreCase("universityName")) { 

          if (insideItem) 

           names.add(xpp.nextText()); //extract the headline 

         } else if (xpp.getName().equalsIgnoreCase("url")) { 

          if (insideItem) 

           links.add(xpp.nextText()); //extract the link of article 

         } 
        }else if(eventType==XmlPullParser.END_TAG && xpp.getName().equalsIgnoreCase("item")){ 

         insideItem=false; 

        } 



        eventType = xpp.next(); //move to next element 

       } 


     }catch (MalformedURLException e) { 

      e.printStackTrace(); 

     } catch (XmlPullParserException e) { 

      e.printStackTrace(); 

     } catch (IOException e) { 

      e.printStackTrace(); 

     } 
     ArrayAdapter adapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, names); 


       setListAdapter(adapter); 


    } 
    private InputStream getInputStream(URL url) { 
     // TODO Auto-generated method stub 
     try { 
      return url.openConnection().getInputStream(); 
      } catch (IOException e) { 
        return null; 

       } 
+0

究竟你的問題是什麼?你想在下一個屏幕上顯示哪些細節? – YuDroid 2012-07-11 13:22:26

+0

我想列舉在webservice中的數據兩部分的細節和一般例如我想要在第一個屏幕中分析ia listView在第二個單擊時在這個列表中的項目的名稱帶我到第二個屏幕顯示點擊了 – user1404380 2012-07-11 13:25:03

回答

1

使用intent.putExtra("your field",your_actual_value);方法,並在其中要顯示細節的其它活動使用getIntent()方法。你想在下一個屏幕上顯示什麼具體細節?具體..

+0

的uni的信息是uni和uni no的網址。 – user1404380 2012-07-11 13:47:39

+0

thanx爲ans我會嘗試它:) – user1404380 2012-07-11 13:48:11