Java 类android类别、子类别中的xml解析列表视图
我必须使用xml解析开发android listview 我正在从mysql服务器获取xml提要。该产品被添加到日常活动中 这里我需要3种列表视图:Java 类android类别、子类别中的xml解析列表视图,java,android,android-listview,Java,Android,Android Listview,我必须使用xml解析开发android listview 我正在从mysql服务器获取xml提要。该产品被添加到日常活动中 这里我需要3种列表视图: 1st view: Category 2nd view: SubCategory 3rd view: Product 在fistview中,必须单独显示Categoryname 从我的xml提要第1个视图必须显示 类别名称单独 在第二视图中: 必须显示属于Categoryname的子类别名称 在第三个视图中: 必须显示产品名称和价格属于
1st view: Category
2nd view: SubCategory
3rd view: Product
在fistview中,必须单独显示Categoryname
从我的xml提要第1个视图必须显示
类别名称单独
在第二视图中:
必须显示属于Categoryname的子类别名称
在第三个视图中:
必须显示产品名称和价格属于子类别名称
这是我的第一个查看代码:
public class MainActivity extends Activity {
static final String URL =http://api1.sfsfsfsf.com/dev/categories/?fields=&categoryid=3&access_token=bfb787a6e
static String KEY_CATEGORY = "category";
static final String KEY_TITLE = "categoryName";
static final String KEY_SUBCATE = "categoryId";
ListView lview3;
LazyAdapter adapter;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final ArrayList<HashMap<String, String>> songsList = new ArrayList<HashMap<String, String>>();
XMLParser parser = new XMLParser();
String xml = parser.getXmlFromUrl(URL); // getting XML from URL
Document doc = parser.getDomElement(xml); // getting DOM element
NodeList nl = doc.getElementsByTagName(KEY_CATEGORY);
// 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);
map.put(KEY_TITLE, parser.getValue(e, KEY_TITLE));
map.put(KEY_SUBCATE, parser.getValue(e, KEY_SUBCATE));
songsList.add(map);
}
lview3 = (ListView) findViewById(R.id.listView1);
adapter = new LazyAdapter(this, songsList);
lview3.setAdapter(adapter);
lview3.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
HashMap<String, String> map = songsList.get(position);
Intent in = new Intent(
MainActivity.this,
com.example.androidcartxml.SubCate.class);
in.putExtra(KEY_TITLE, map.get(KEY_TITLE));
in.putExtra(KEY_SUBCATE, map.get(KEY_SUBCATE));
}
});
}
}
public class SubCate extends Activity {
String mTitle;
static final String URL = "http://api1.sfsfsff.com/dev/categories/?fields=&categoryid="+mTitle+"&access_token=bfb787a6e11";
static String KEY_CATEGORY = "category";
static final String KEY_TITLE = "categoryName";
static final String KEY_NAME ="categoryId";
static final String KEY_SUBCATE = "categoryId";
ListView lview3;
ListViewCustomAdapter adapter;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.subcate);
Bundle b = getIntent().getExtras();
//String s= getIntent().getStringExtra("orderid");
mTitle = b.getString(KEY_SUBCATE);
TextView grandtotal = (TextView) findViewById(R.id.subcate);
grandtotal.setText("Welcome ," + mTitle );
final ArrayList<HashMap<String, String>> songsList = new ArrayList<HashMap<String, String>>();
// String key = getIntent().getStringExtra(KEY_TITLE);
XMLParser parser = new XMLParser();
String xml = parser.getXmlFromUrl(URL); // getting XML from URL
Document doc = parser.getDomElement(xml); // getting DOM element
NodeList nl = doc.getElementsByTagName(KEY_CATEGORY);
// 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_TITLE, parser.getValue(e, KEY_TITLE));
map.put(KEY_NAME, parser.getValue(e, KEY_NAME));
songsList.add(map);
}
lview3 = (ListView) findViewById(R.id.listView1);
adapter = new ListViewCustomAdapter(this, songsList);
lview3.setAdapter(adapter);
lview3.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
HashMap<String, String> map = songsList.get(position);
Intent in = new Intent(
SubCate.this,
com.example.androidcartxml.Catalogue.class);
in.putExtra(KEY_TITLE, map.get(KEY_TITLE));
in.putExtra(KEY_NAME, map.get(KEY_NAME));
// in.putExtra(KEY_THUMB_URL, map.get(KEY_THUMB_URL));
//in.putExtra(KEY_PRICE, map.get(KEY_PRICE));
startActivity(in);
}
});
我必须在我的链接上调用这些mTitle值,这意味着它不显示在子类别列表上。请帮助我
[http://api1.sfsfsff.com/dev/categories/?fields=&categoryid=“+mTitle+”&access_token=bfb787a6][2]
我的代码有什么问题。如何将该类别ID调用到我的url。请为我提供解决方案
编辑:
这是我的网址:
[http://api1.sfsfsfsf.com/dev/categories/?fields=&categoryid=10&access_token=bfb787a6e][3]
我已经直接提到categoryid=10意味着所有产品都失效
但我必须更改此url,如下所示:
[http://api1.sfsfsf.com/dev/categories/?fields=&categoryid=“+mTitle+”&access_token=bfb787a6e17][4]
Nw我更改了我的url,如categoryid=“+mTitle+”表示未显示所有产品
mTitle值是从我以前的活动中获取的
我的代码有什么问题
我的mTitle值是10。我必须像means一样编写代码
grandtotal.setText(“欢迎,”+mTitle)代码>
成功显示其mTitle值
grandtotal.setText(“欢迎,”+URL)代码>意味着给了我空值我建议使用sax解析器而不是dom解析器
这个链接对你很有帮助。
这里我先调用了URL,然后只声明了mTitle值。这就是我在这里遇到问题的原因
现在我得到了解决方案:
我先声明了mTitle,然后才调用下面的URL
mTitle = b.getString(KEY_SUBCATE);
URL = "http://api1.sfsfsffsf.com/dev/categories/?fields=&categoryid=" + mTitle + "&access_token=bfb787a";
在第二个视图中获取与第一个视图相同的Listviewview@DipakKeshariya在第二个视图中:我必须在第一个视图中单击“书本”表示我必须在第二个视图的Internet软件上显示下一个活动,或者我必须在第一个视图中单击“CD DVD视频”表示我必须在第二个视图中也要显示,但我必须运行应用程序并单击“书本”表示我已获取所有内容第二视图上显示的子类别。CD DVD Audio我已经向您发送了有关此问题的源代码。请检查我的更新答案并回复我,这对您是否有帮助。@user1897014抱歉,亲爱的,我在这里只提到如何使用sax解析器读取xml响应。现在您更改了要求。好的,谢谢您的反馈。但我建议您,如何在单独列表中显示iin是您的挑战。再次感谢您的反馈。请在android ListViews中为我提供解析示例抱歉,亲爱的,可能会延迟,但这里是您解决问题的代码。现在只有我得到了明确的要求。请阅读我更新的问题,并为我提供解决方案。对不起,亲爱的,我在这里只提到了如何使用sax解析器读取xml响应。现在您更改了您的要求。好的,谢谢您的反馈。但在这里,我建议您,如何在单独的列表中显示iin是您的挑战。再次感谢您的反馈。。
mTitle = b.getString(KEY_SUBCATE);
URL = "http://api1.sfsfsffsf.com/dev/categories/?fields=&categoryid=" + mTitle + "&access_token=bfb787a";