Java Android-如何为单个列表行打开不同的列表

Java Android-如何为单个列表行打开不同的列表,java,android,xml,list,arraylist,Java,Android,Xml,List,Arraylist,我有这个xml(我不知道它是否完美): ArrayList>listaElem=新ArrayList>() XMLParser=newxmlparser(); //字符串xml=parser.getXmlFromUrl(URL);//从URL获取XML InputStream is=getResources().openRawResource(R.raw.lista_principale); 字符串xml=convertStreamToString(is); Document doc=parse

我有这个xml(我不知道它是否完美):

ArrayList>listaElem=新ArrayList>()

XMLParser=newxmlparser();
//字符串xml=parser.getXmlFromUrl(URL);//从URL获取XML
InputStream is=getResources().openRawResource(R.raw.lista_principale);
字符串xml=convertStreamToString(is);
Document doc=parser.getdoElement(xml);//获取DOM元素
NodeList nl=doc.getElementsByTagName(KEY_RIGA);
//循环通过所有歌曲节点
对于(int i=0;ivalue
put(KEY_ID,parser.getValue(e,KEY_ID));
put(KEY_TITLE,parser.getValue(e,KEY_TITLE));
put(KEY_THUMB_URL,parser.getValue(e,KEY_THUMB_URL));
put(KEY_PROVA,parser.getValue(e,KEY_PROVA));
//将哈希列表添加到ArrayList
listaElem.add(map);
}
list=(ListView)findViewById(R.id.list);
//通过传递xml数据ArrayList获取适配器
适配器=新的LazyAdapter(此,listaElem);
list.setAdapter(适配器);
//单击单个列表行的事件
list.setOnItemClickListener(新的OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父级、视图、,
内部位置,长id){
Intent i=新的Intent(getApplicationContext(),Lista2.class);
字符串posto_id=((TextView)view.findviewbyd(R.id.title)).getText().toString();
Toast.makeText(getApplicationContext(),“相册Id:+posto_Id,Toast.LENGTH_SHORT).show();
i、 putExtra(“posto_id”,posto_id);
星触觉(i);
}
});     
}   
}
单一列表活动

public class Lista2 extends Activity {


    String posto_id = null;

    LazyAdapter adapter;
    static String convertStreamToString(java.io.InputStream is) {
        @SuppressWarnings("resource")
        java.util.Scanner s = new java.util.Scanner(is).useDelimiter("\\A");
        return s.hasNext() ? s.next() : "";
    };

    static final String KEY_TITLE = "title";
    static final String KEY_PROVA = "prova";



    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_lista2);

        ArrayList<HashMap<String, String>> listaElem = new ArrayList<HashMap<String, String>>();

        XMLParser parser = new XMLParser();
        //String xml = parser.getXmlFromUrl(URL); // getting XML from URL

        InputStream is = getResources().openRawResource(R.raw.lista_principale);

        String xml=convertStreamToString(is);


        Intent i = getIntent();
        int k=0;
        k = i.getIntExtra("posto_id",k);

       // i.getStringExtra(posto_id);


         Document doc = parser.getDomElement(xml); 


            NodeList nl = doc.getElementsByTagName(KEY_PROVA);

            for (k=0; k< nl.getLength();k++){



            HashMap<String, String> map2 = new HashMap<String, String>();

            Element f = (Element) nl.item(k);
            map2.put(KEY_TITLE, parser.getValue(f, KEY_TITLE));

            listaElem.add(map2);
            }


        // Displaying all values on the screen
        ListView lblSong = (ListView) findViewById(R.id.list2);

        adapter=new LazyAdapter(this, listaElem);   
        lblSong.setAdapter(adapter);
    }
}
公共类列表2扩展活动{
字符串posto_id=null;
懒散适配器;
静态字符串convertStreamToString(java.io.InputStream为){
@抑制警告(“资源”)
java.util.Scanner s=新的java.util.Scanner(is).useDelimiter(“\\A”);
返回s.hasNext()?s.next():“”;
};
静态最终字符串键\u TITLE=“TITLE”;
静态最终字符串键\u PROVA=“PROVA”;
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_lista2);
ArrayList listaElem=新的ArrayList();
XMLParser=新的XMLParser();
//字符串xml=parser.getXmlFromUrl(URL);//从URL获取xml
InputStream is=getResources().openRawResource(R.raw.lista_principale);
字符串xml=convertStreamToString(is);
Intent i=getIntent();
int k=0;
k=i.getIntExtra(“posto_id”,k);
//i.getStringExtra(posto_id);
Document doc=parser.getdoElement(xml);
NodeList nl=doc.getElementsByTagName(KEY_PROVA);
对于(k=0;k
为单个列表行打开不同的列表??它的确切含义是。。可以使用预期输出更新问题“您希望如何?”。。您想用哪个解析器解析..DOM?SAXPARSER??dom解析!我想创建一个android多级列表!
   public class Lista extends Activity {
        // All static variables
        static String convertStreamToString(java.io.InputStream is) {
            @SuppressWarnings("resource")
            java.util.Scanner s = new      

java.util.Scanner(is).useDelimiter("\\A");

            return s.hasNext() ? s.next() : "";
        };
    //  static final String URL = "lista_principale.xml";
        // XML node keys
        static final String KEY_RIGA = "riga"; // parent node
        static final String KEY_ID = "id";
        static final String KEY_TITLE = "title";
        static final String KEY_THUMB_URL = "thumb_url";
        static final String KEY_PROVA = "prova";

        ListView list;
        LazyAdapter adapter;

        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_lista);
            XMLParser parser = new XMLParser();
            //String xml = parser.getXmlFromUrl(URL); // getting XML from URL

            InputStream is = getResources().openRawResource(R.raw.lista_principale);

            String xml=convertStreamToString(is);


            Document doc = parser.getDomElement(xml); // getting DOM element

            NodeList nl = doc.getElementsByTagName(KEY_RIGA);
            // looping through all song nodes <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_TITLE, parser.getValue(e, KEY_TITLE));
                map.put(KEY_THUMB_URL, parser.getValue(e, KEY_THUMB_URL));
                map.put(KEY_PROVA, parser.getValue(e, KEY_PROVA));


                // adding HashList to ArrayList
                listaElem.add(map);
            }


            list=(ListView)findViewById(R.id.list);

            // Getting adapter by passing xml data ArrayList
            adapter=new LazyAdapter(this, listaElem);        
            list.setAdapter(adapter);

            // Click event for single list row
            list.setOnItemClickListener(new OnItemClickListener() {
                @Override
                public void onItemClick(AdapterView<?> parent, View view,
                        int position, long id)  {

                    Intent i = new Intent(getApplicationContext(), Lista2.class);

                    String posto_id = ((TextView) view.findViewById(R.id.title)).getText().toString();

                    Toast.makeText(getApplicationContext(), "Album Id: " + posto_id , Toast.LENGTH_SHORT).show();

                    i.putExtra("posto_id", posto_id);

                    startActivity(i); 



                }
            });     

        }   
    }
public class Lista2 extends Activity {


    String posto_id = null;

    LazyAdapter adapter;
    static String convertStreamToString(java.io.InputStream is) {
        @SuppressWarnings("resource")
        java.util.Scanner s = new java.util.Scanner(is).useDelimiter("\\A");
        return s.hasNext() ? s.next() : "";
    };

    static final String KEY_TITLE = "title";
    static final String KEY_PROVA = "prova";



    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_lista2);

        ArrayList<HashMap<String, String>> listaElem = new ArrayList<HashMap<String, String>>();

        XMLParser parser = new XMLParser();
        //String xml = parser.getXmlFromUrl(URL); // getting XML from URL

        InputStream is = getResources().openRawResource(R.raw.lista_principale);

        String xml=convertStreamToString(is);


        Intent i = getIntent();
        int k=0;
        k = i.getIntExtra("posto_id",k);

       // i.getStringExtra(posto_id);


         Document doc = parser.getDomElement(xml); 


            NodeList nl = doc.getElementsByTagName(KEY_PROVA);

            for (k=0; k< nl.getLength();k++){



            HashMap<String, String> map2 = new HashMap<String, String>();

            Element f = (Element) nl.item(k);
            map2.put(KEY_TITLE, parser.getValue(f, KEY_TITLE));

            listaElem.add(map2);
            }


        // Displaying all values on the screen
        ListView lblSong = (ListView) findViewById(R.id.list2);

        adapter=new LazyAdapter(this, listaElem);   
        lblSong.setAdapter(adapter);
    }
}