带图标的ListView
activity_main.xml的RelativeLayout中定义了一个ListView android:id="@+id/listView",
另外我们创建items.xml,里头包括一个ImageView android:id="@+id/image"和一个TextView android:id="@+id/title"。
MainActivity.java
super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);ListView listView = (ListView)findViewById(R.id.listView);int[] imageId = new int[]{R.drawable.facebook, R.drawable.googleplus, R.drawable.twitter, R.drawable.youtube};String[] title = new String[]{"facebook", "googleplus", "twitter", "youtube"};List<Map<String, Object>> listItems = new ArrayList<Map<String, Object>>();for(int i = 0; i < imageId.length; i++){
Map<String, Object> map = new HashMap<String, Object>();map.put("image", imageId[i]);map.put("title", title[i]);listItems.add(map);
}SimpleAdapter adapter = new SimpleAdapter(this, listItems, R.layout.items,new String[]{"title", "image"}, new int[]{R.id.title, R.id.image});listView.setAdapter(adapter);
周期性执行任务
/** when:几毫秒后第一次执行* period:执行间距,也就是几时后再执行*/new Timer().schedule(new TimerTask() {public void run() {}}, 0, 1200);
解析XML文件
我们在res下新建了xml文件夹,放置city.xml
<?xml version="1.0" encoding="UTF-8"?>
<country>
<province name="吉林">
<shenghui>长春</shenghui>
</province>
<province name="广东">
<shenghui>广州</shenghui>
</province>
</country>
<country>
<province name="吉林">
<shenghui>长春</shenghui>
</province>
<province name="广东">
<shenghui>广州</shenghui>
</province>
</country>
解析关键代码如下:
/*新建XmlPullParser方式一:
XmlPullParser parser = Xml.newPullParser();
parser.setInput(inputStream, "utf-8");*/
/*新建XmlPullParser方式二(与上面一种方法其实都会生成KXmlParser):
XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
XmlPullParser parser = factory.newPullParser(); */XmlPullParser parser = getResources().getXml(R.xml.city);
int type;
type = parser.getEventType();
String songId = null;
while(type != XmlPullParser.END_DOCUMENT){switch (type) {case XmlPullParser.START_TAG:if("province".equals(parser.getName())){Log.v("省份", parser.getAttributeValue(0));}else if("shenghui".equals(parser.getName())){
//nextText()会让解析位置改变,从而使得事件发生改变,所以不要在这一个if用两次nextText,可用变量暂存起来
Log.v("省会", parser.nextText());}break;}type = parser.next();}