main.xml

<?xml version="1.0" encoding="utf-8"?><ScrollView xmlns:android="http://schemas.android.com/apk/res/android"    android:id="@+id/arc_hf_search_result"    android:layout_width="match_parent"    android:layout_height="match_parent" >    <LinearLayout        android:id="@+id/arc_hf_search_item"        android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:orientation="vertical" >    </LinearLayout></ScrollView>

ArcHFSearchResult.java

public class ArcHFSearchResult extends Activity {    protected static final String TAG = "ArcHFSearchResult";    private ScrollView svResult;    private LinearLayout llItem;    private String[] arrayStr;    private int pageCount = 0;    private int resultCount = 10000;    private int eachCount = 3000;    private View view;    /** Called when the activity is first created. */    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);        svResult = (ScrollView) findViewById(R.id.arc_hf_search_result);        llItem = (LinearLayout) findViewById(R.id.arc_hf_search_item);        svResult.setOnTouchListener(svListener);        view = svResult.getChildAt(0);        // 将要显示的10000条数据        arrayStr = new String[resultCount];        for (int i = 0; i < resultCount; i++) {            arrayStr[i] = i + "";        }        // 第一次添加数据,每次添加3000条。        AddResult();    }    class svTouchListener implements OnTouchListener {        @Override        public boolean onTouch(View v, MotionEvent event) {            switch (event.getAction()) {            case MotionEvent.ACTION_DOWN:                break;            case MotionEvent.ACTION_UP:                // 如果触发监听事件,并且有内容,并且ScrollView已经拉到底部,加载一次数据                if (svListener != null                        && view != null                        && view.getMeasuredHeight() - 20 <= svResult                                .getScrollY() + svResult.getHeight()) {                    AddResult();                }                break;            default:                break;            }            return false;        }    }    svTouchListener svListener = new svTouchListener();    /**     * 添加结果     */    protected void AddResult() {        if (eachCount * pageCount < resultCount) {            for (int i = 0; i < eachCount; i++) {                int k = i + eachCount * pageCount;                if (k >= resultCount)                    break;                TextView tv = new TextView(this);                tv.setText("hello world" + arrayStr[k]);                llItem.addView(tv);            }            pageCount++;        }    }}

更多相关文章

  1. Android——SQLite数据库
  2. Android使用JDBC连接mysql数据库
  3. Android黑科技动态加载(二)之Android中的ClassLoader
  4. 基于Android官方Paging Library的RecyclerView分页加载框架
  5. Android 高效的SQLite型数据库greenDAO使用
  6. Android五种常用数据的存储方式
  7. Android ListView中带有时间数据的排序
  8. 【黑马Android】(02)短信发送器/布局演示/android下单位/android
  9. Android的数据库--sqlite(一)

随机推荐

  1. (转帖)Android系列之浅谈Android 3D旋转
  2. android 图片的 放大 缩小 移动
  3. 使用Vitamio打造自己的Android万能播放器
  4. android Handler 机制研究学习笔记
  5. Android原生(Native)C开发之二 framebuff
  6. android BaseAdapter优化
  7. Android中图片占用内存的计算
  8. Android 事件分发机制
  9. android中的sqlite数据库加密
  10. android source code online