package com.qianfeng.day04_homework;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.TreeMap;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
import org.xmlpull.v1.XmlPullParserFactory;
import android.R.integer;
import android.R.string;
import android.app.Activity;
import android.content.res.XmlResourceParser;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Adapter;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import android.widget.SpinnerAdapter;
import android.widget.TextView;
public class MainActivity extends Activity {
List<String> d=null;
Map<String, List<String>> c=null;
Map<String, Map<String,List<String>>> p=null;
String pro1=null;
String city1=null;
String area1=null;
SpinnerAdapter proadapter=null;
SpinnerAdapter cityadapter=null;
SpinnerAdapter areaadapterAdapter=null;
final int Itemid=android.R.layout.simple_list_item_1;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Spinner pro=(Spinner) findViewById(R.id.pro);
final Spinner city=(Spinner) findViewById(R.id.city);
final Spinner area=(Spinner) findViewById(R.id.area);
try {
XmlResourceParser xrp=getResources().getXml(R.xml.citys_weather);
int type=xrp.getEventType();
while(type!=XmlPullParser.END_DOCUMENT){
switch (type) {
case XmlPullParser.START_TAG:
String data=xrp.getName();
if(data.equals("citylist")){
p=new TreeMap<String, Map<String,List<String>>>();
}else if(data.equals("p")){
c=new TreeMap<String, List<String>>();
}else if(data.equals("pn")){
pro1=xrp.nextText();
}else if(data.equals("c")){
d=new ArrayList<String>();
}else if(data.equals("cn")){
city1=xrp.nextText();
}else if(data.equals("d")){
d.add(xrp.nextText());
}
break;
case XmlPullParser.END_TAG:
if(xrp.getName().equals("c")){
c.put(city1, d);
}else if(xrp.getName().equals("p")){
p.put(pro1, c);
}
break;
}
type=xrp.next();
}
List<String> list1=new ArrayList<String>();
for (String s1 :p.keySet()) {
list1.add(s1);
}
proadapter=new ArrayAdapter(MainActivity.this, Itemid,list1);
pro.setAdapter(proadapter);
pro.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view,
int position, long id) {
TextView tv=(TextView) view;
final String content=tv.getText().toString();
List<String> list2=new ArrayList<String>();
for (String s2 : p.get(content).keySet()) {
list2.add(s2);
}
cityadapter=new ArrayAdapter(MainActivity.this, Itemid,list2);
city.setAdapter(cityadapter);
city.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent,
View view, int position, long id) {
TextView tv2=(TextView) view;
String content1=tv2.getText().toString();
List<String> list3=p.get(content).get(content1);
areaadapterAdapter=new ArrayAdapter(MainActivity.this, Itemid, list3);
area.setAdapter(areaadapterAdapter);
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
// TODO Auto-generated method stub
}
});
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
// TODO Auto-generated method stub
}
});
} catch (Exception e) {
e.printStackTrace();
}
}
}