Java Android-如何为单个列表行打开不同的列表
我有这个xml(我不知道它是否完美): ArrayList>listaElem=新ArrayList>()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
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);
}
}