• 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

  • 相关阅读:
    网络基础
    模块和包的介绍与使用
    PHP 接口输出 图片
    Deprecated: Automatically populating $HTTP_RAW_POST_DATA is deprecated and will be removed in a future version. To avoid this warning set 'always_populate_raw_post_data' to '-1' in php.ini and use the
    dedeCMS 两个站共用同一个数据库 图片路径统一
    写入文件_调试方法
    Mysql触发器 使用示例
    部署GitLab遇到的问题记录
    防火墙对nginx服务器有影响
    更新yum源并重建缓存
  • 原文地址:https://www.cnblogs.com/shanzei/p/2414118.html
Copyright © 2020-2023  润新知