zoukankan      html  css  js  c++  java
  • Android 滑动加载数据

    我们还得在代码中写上LinearLayout.LayoutParams.WRAP_CONTENT,这样的代码。这样动态加载就算是完成了,我们还是先看看代码吧:
    package com.ScrollListView;

    import android.app.ListActivity;
    import android.os.Bundle;
    import android.view.Gravity;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.AbsListView;
    import android.widget.BaseAdapter;
    import android.widget.LinearLayout;
    import android.widget.ProgressBar;
    import android.widget.TextView;
    import android.widget.AbsListView.OnScrollListener;

    public class EndLessActivity extends ListActivity implements OnScrollListener {

    Aleph0 adapter = new Aleph0();
    int mProgressStatus = 0;
    ProgressBar progressBar;
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    LinearLayout searchLayout = new LinearLayout(this);
    searchLayout.setOrientation(LinearLayout.HORIZONTAL);
    progressBar = new ProgressBar(this);
    progressBar.setPadding(0, 0, 15, 0);
    searchLayout.addView(progressBar,new LinearLayout.LayoutParams(
    LinearLayout.LayoutParams.WRAP_CONTENT,
    LinearLayout.LayoutParams.WRAP_CONTENT
    ));
    TextView textView = new TextView(this);
    textView.setText("加载中...");
    textView.setGravity(Gravity.CENTER_VERTICAL);
    searchLayout.addView(textView,new LinearLayout.LayoutParams(
    LinearLayout.LayoutParams.FILL_PARENT,
    LinearLayout.LayoutParams.FILL_PARENT
    ));
    searchLayout.setGravity(Gravity.CENTER);
    LinearLayout loadingLayout = new LinearLayout(this);
    loadingLayout.addView(searchLayout,new LinearLayout.LayoutParams(
    LinearLayout.LayoutParams.WRAP_CONTENT,
    LinearLayout.LayoutParams.WRAP_CONTENT
    ));
    loadingLayout.setGravity(Gravity.CENTER);
    getListView().addFooterView(loadingLayout);

    setListAdapter(adapter);
    getListView().setOnScrollListener(this);
    }

    public void onScroll(AbsListView view,
    int firstVisible, int visibleCount, int totalCount) {

    boolean loadMore = /* maybe add a padding */
    firstVisible + visibleCount >= totalCount;

    if(loadMore) {
    adapter.count += visibleCount; // or any other amount
    adapter.notifyDataSetChanged();
    }
    }

    public void onScrollStateChanged(AbsListView v, int s) { }

    class Aleph0 extends BaseAdapter {
    int count = 40; /* starting amount */

    public int getCount() { return count; }
    public Object getItem(int pos) { return pos; }
    public long getItemId(int pos) { return pos; }

    public View getView(int pos, View v, ViewGroup p) {
    TextView view = new TextView(EndLessActivity.this);
    view.setText("entry " + pos);
    return view;
    }
    }



    }

    listview下部是按钮控制:

    package com.ScrollListView;

    import android.app.ListActivity;
    import android.os.Bundle;
    import android.view.Gravity;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.AbsListView;
    import android.widget.BaseAdapter;
    import android.widget.Button;
    import android.widget.LinearLayout;
    import android.widget.ProgressBar;
    import android.widget.TextView;
    import android.widget.AbsListView.OnScrollListener;

    public class EndLessActivity extends ListActivity {

    Aleph0 adapter = new Aleph0();
    int mProgressStatus = 0;

    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    LinearLayout searchLayout = new LinearLayout(this);
    searchLayout.setOrientation(LinearLayout.HORIZONTAL);

    Button textView = new Button(this);
    textView.setText("加载中...");
    textView.setGravity(Gravity.CENTER_VERTICAL);
    searchLayout.addView(textView,new LinearLayout.LayoutParams(
    LinearLayout.LayoutParams.FILL_PARENT,
    LinearLayout.LayoutParams.FILL_PARENT
    ));
    searchLayout.setGravity(Gravity.CENTER);
    LinearLayout loadingLayout = new LinearLayout(this);
    loadingLayout.addView(searchLayout,new LinearLayout.LayoutParams(
    LinearLayout.LayoutParams.WRAP_CONTENT,
    LinearLayout.LayoutParams.WRAP_CONTENT
    ));
    loadingLayout.setGravity(Gravity.CENTER);
    getListView().addFooterView(loadingLayout);
    textView.setOnClickListener(new Button.OnClickListener()
    { @Override
    public void onClick(View v)
    {
    adapter.count += 10;
    adapter.notifyDataSetChanged();
    }
    });


    setListAdapter(adapter);
    //getListView().setOnScrollListener(this);
    }

    /*public void onScroll(AbsListView view,
    int firstVisible, int visibleCount, int totalCount) {

    boolean loadMore =
    firstVisible + visibleCount >= totalCount;

    if(loadMore) {
    adapter.count += visibleCount;
    adapter.notifyDataSetChanged();
    }
    }
    */

    public void onScrollStateChanged(AbsListView v, int s) { }

    class Aleph0 extends BaseAdapter {
    int count = 40; /* starting amount */

    public int getCount() { return count; }
    public Object getItem(int pos) { return pos; }
    public long getItemId(int pos) { return pos; }

    public View getView(int pos, View v, ViewGroup p) {
    TextView view = new TextView(EndLessActivity.this);
    view.setText("entry " + pos);
    return view;
    }
    }



    }

    转自:http://javajeye.iteye.com/blog/789761

  • 相关阅读:
    教你用笔记本破解无线路由器password
    Android项目外接高德地图代码混淆注意事项
    notepad++ 配置笔记
    ORACLE11.2.0 SQLPLUS 报 error while loading shared libraries
    【Lucene4.8教程之三】搜索
    《Swift Programming Language 》——Swift中怎样使用继承(Inheritance)
    CreateProcess的使用方法
    ntoskrnl.exe损坏或丢失的解决方式
    POI读入excel文件到Java中
    稀疏表示
  • 原文地址:https://www.cnblogs.com/shanzei/p/2414118.html
Copyright © 2011-2022 走看看