[android] 网易新闻客户端

Android 4.0

网易新闻客户端  


网易新闻客户端

1、ListView显示内容

2、以GET方式从服务器上下载资源

3、在子线程中下载资源,通过消息机制通知服务器更新UI(Message,Handler)

4、Pull解析xml文件

5、资源下载前的等待时间(利用帧布局和ProgressBar来控制)。


零、布局

一、ListView的适配器

二、从服务器上下载资源

三、将流一个xml文件中的内容解析出来到一个List集合中去(利用pull解析)


结果:

技术点:
1、pull解析中,
else if ("title".equals(tagName)) {
                        // String getText = parser.getText(); // 获取当前事件的文本表示
                        // String nextTxt = parser.nextText();// 注意和getText()的区别
                        // System.out.println("getText--" + getText);
                        // System.out.println("nextTxt--" + nextTxt);
                        newsInfo.setTitle(parser.nextText());
只可以写一个parsr.nextText(),否则解析不出来。

2、资源下载前的等待时间(利用帧布局和ProgressBar来控制)。
a) 布局文件
<FrameLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent" >
        <LinearLayout
            android:id="@+id/ll_loading"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:gravity="center"
            android:orientation="vertical"
            android:visibility="invisible" >
            <ProgressBar
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" />
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="正在获取新闻信息..." />
        </LinearLayout>
        <ListView
            android:id="@+id/lv"
            android:layout_width="match_parent"
            android:layout_height="match_parent" >
        </ListView>
</FrameLayout>

b) 代码控制

1、资源下载可见
View.VISIBLE
public void run() {
     // 下载资源时,加载progressbar加载资源,设置为可见,资源等待下载
     ll_loading.setVisibility(View.VISIBLE);
       ......
}
2、更新UI时,说明资源下载完毕
public void handleMessage(Message msg) {
   super.handleMessage(msg);
   // 当界面需要更新ui时,设置为invisible
   ll_loading.setVisibility(View.INVISIBLE);
    ......
}
完整代码: