梧州学院电脑联盟吧 关注:13贴子:97
  • 6回复贴,共1

Android 刷新分页的一个简单例子

只看楼主收藏回复

。。。。。。《一楼 专属度娘》。。。。。。


IP属地:广东1楼2014-09-05 09:47回复
    main6.xml 代码
    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >
    <ListView
    android:id="@+id/listView6_1"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center" >
    </ListView>
    </LinearLayout>


    IP属地:广东2楼2014-09-05 09:48
    回复
      2025-06-09 06:13:44
      广告
      load.xml 代码
      <?xml version="1.0" encoding="utf-8"?>
      <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      android:gravity="center"
      android:orientation="horizontal" >
      <ProgressBar
      android:id="@+id/progressBar1"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content" />
      <TextView
      android:id="@+id/textView1"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="正在加载。。。。。" />
      </LinearLayout>


      IP属地:广东3楼2014-09-05 09:49
      回复
        main6_item.xml 代码
        <?xml version="1.0" encoding="utf-8"?>
        <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical" >
        <TextView
        android:id="@+id/tv_title"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Large Text"
        android:textAppearance="?android:attr/textAppearanceLarge" />
        <TextView
        android:id="@+id/tv_content"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="TextView" />
        </LinearLayout>


        IP属地:广东4楼2014-09-05 09:49
        回复
          MainActivity6.java 代码
          package com.gxuwz.android_21;
          import java.util.ArrayList;
          import android.annotation.SuppressLint;
          import android.app.Activity;
          import android.os.Bundle;
          import android.os.Handler;
          import android.view.View;
          import android.view.ViewGroup;
          import android.widget.AbsListView;
          import android.widget.AbsListView.OnScrollListener;
          import android.widget.BaseAdapter;
          import android.widget.ListView;
          import android.widget.TextView;
          @SuppressLint("HandlerLeak")
          public class MainActivity6 extends Activity implements OnScrollListener{
          int index=1;//数据计数器, 索引。
          private ListView lv;
          private ArrayList<News> news=new ArrayList<News>();
          MyAdapter adapter;
          protected void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.main6);
          lv=(ListView) findViewById(R.id.listView6_1);
          lv.setOnScrollListener(this);
          //设置底部视图
          View foot=getLayoutInflater().inflate(R.layout.load, null);
          lv.addFooterView(foot);
          intiData();
          adapter=new MyAdapter();
          lv.setAdapter(adapter);
          }
          //初始化数据
          void intiData(){
          for (int i = 0; i < 10; i++) {
          News n=new News();
          n.title="title"+index;
          n.content="content"+index;
          index++;
          news.add(n);
          }
          }
          //自定义适配器
          class MyAdapter extends BaseAdapter{
          public int getCount() {
          return news.size();
          }
          public Object getItem(int position) {
          return news.get(position);
          }
          public long getItemId(int position) {
          return position;
          }
          public View getView(int position, View convertView, ViewGroup parent) {
          ViewHolder vh;
          if (convertView==null) {
          convertView=getLayoutInflater().inflate(R.layout.main6_item, null);
          vh=new ViewHolder();
          vh.tv_tilte=(TextView) convertView.findViewById(R.id.tv_title);
          vh.tv_content=(TextView) convertView.findViewById(R.id.tv_content);
          convertView.setTag(vh);
          } else {
          vh=(ViewHolder) convertView.getTag();
          }
          News n=news.get(position);
          vh.tv_content.setText(n.content);
          vh.tv_tilte.setText(n.title);
          return convertView;
          }
          }
          static class ViewHolder{
          TextView tv_tilte;
          TextView tv_content;
          }
          //visibleLastIndex 表示最后一条数据的标号
          int visibleLastIndex=0;
          public void onScrollStateChanged(AbsListView view, int scrollState) {
          //判断
          if (visibleLastIndex==adapter.getCount()&&scrollState==OnScrollListener.SCROLL_STATE_IDLE){
          //加载新数据
          new LoadDataThread().start();
          }
          }
          public void onScroll(AbsListView view, int firstVisibleItem,
          int visibleItemCount, int totalItemCount) {
          visibleLastIndex=firstVisibleItem+visibleItemCount-1;
          }
          //线程之间通信的桥梁
          private Handler handler=new Handler(){
          @SuppressLint("HandlerLeak")
          public void handleMessage(android.os.Message msg) {
          switch (msg.what) {
          case 1:
          adapter.notifyDataSetChanged();//数据更新
          break;
          default:
          break;
          }
          };
          };
          //模拟加载数据过程
          class LoadDataThread extends Thread{
          public void run() {
          intiData();//获取数据
          try {
          Thread.sleep(2000);//休眠3秒 模拟从网络获取数据
          } catch (InterruptedException e) {
          e.printStackTrace();
          }
          //通过handler处理器通知主线程。说数据已加载完毕!
          handler.sendEmptyMessage(1);
          }
          }
          }


          IP属地:广东5楼2014-09-05 09:50
          回复
            记得修改AndroidManifest.xml

            <activity
            android:name="com.gxuwz.android_21.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
            </activity>
            改成
            <activity
            android:name="com.gxuwz.android_21.MainActivity6"
            android:label="@string/app_name" >
            <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
            </activity>


            IP属地:广东6楼2014-09-05 09:53
            回复
              项目名称为android_21
              包名为 com.gxuwz.android_21


              IP属地:广东7楼2014-09-05 09:54
              回复