我写了个ListView,我想让它滚动翻页,我想让它在最底部加一个ProgressBar,代码我已经写完了!请大家下载帮忙给看看,它就是不运行,不能翻页最下面的页脚也不出来!请帮我看看!或者有好的解决方案告知我!小妹不胜感激!我放到QQ硬盘里了!请下载下载代码

解决方案 »

  1.   

    QQ下载引导页:http://mail.qq.com/cgi-bin/ftnExs_download?k=703264374174cbc967f1083644620219040a56015b035307190a5c56514f0454520049555303551b035702075450035706505c02626d30774442285e1116665f51454a450310300b&t=exs_ftn_download&code=42d7bb06
      

  2.   

    滚动不是在listview上面加个scollview包裹就行吗
      

  3.   

    count 你写死了        int count=10;
    @Override
    public int getCount() {
    return count;
    }所以它只能显示10条。
      

  4.   

    给你找几个吧:http://androidpageablelistview.googlecode.com/svn/trunk/http://vikaskanani.wordpress.com/2011/02/01/listview-like-android-et-application-with-separator-and-coldfusion-as-web-server/这两个我都试过,可行。
      

  5.   

    我试了下,这样添加 listView.addFooterView,可以:
    public void setLoadingLayout() {
            ProgressBar progressBar = new ProgressBar(this);
            progressBar.setPadding(0, 0, 15, 0);
            listView.addFooterView(progressBar);
            TextView textView = new TextView(this);
            textView.setText("加载中...");
            textView.setGravity(Gravity.CENTER_VERTICAL);
            listView.addFooterView(textView);
        }
      

  6.   

    这样不行啊!一直显示加载中!!7楼前辈您能把ListMainActivity的代码都贴出来吗!
      

  7.   

    我把我代码贴出来吧!希望各位前辈帮忙指正!ListMainActivity.javapackage com.myAndroid.exercise;import android.app.ListActivity;
    import android.graphics.Bitmap;
    import android.graphics.Color;
    import android.os.AsyncTask;
    import android.os.Bundle;
    import android.os.Handler;
    import android.os.Message;
    import android.view.Gravity;
    import android.view.View;
    import android.view.ViewGroup;
    import android.view.View.OnClickListener;
    import android.widget.AbsListView;
    import android.widget.BaseAdapter;
    import android.widget.Button;
    import android.widget.ImageView;
    import android.widget.LinearLayout;
    import android.widget.ListView;
    import android.widget.ProgressBar;
    import android.widget.TextView;
    import android.widget.Toast;
    import android.widget.AbsListView.OnScrollListener;public class ListMainActivity extends ListActivity 
    {
    // 当前Activity中的ListView
    private ListView listView = null;
        private int lastItem = 0;
        private ImageAdapter mMyAdapter;    ListViewData dataListViewData;
        Object[] dataList=null;
        LinearLayout loadingLayout = null;    private Bitmap[] bit1;
    private String[] msgIds1;
    private String[] msgIds2;
    private String[] msgIds3;

        @Override
        public void onCreate(Bundle savedInstanceState) 
        {
    try {
    super.onCreate(savedInstanceState);
          
    listView=getListView(); //这里读取数据,需要把Image文件夹下一些图片拷到sd卡上!根目录即可!
    dataListViewData=new ListViewData();
    setLoadingLayout();
    new readTask().execute(0);
    } catch (Exception e) {
    Toast.makeText(this, e.toString(), Toast.LENGTH_LONG);
    }
        }
        
        public void setLoadingLayout() {
            LinearLayout layout = new LinearLayout(this);
            layout.setOrientation(LinearLayout.HORIZONTAL);
            ProgressBar progressBar = new ProgressBar(this);
            progressBar.setPadding(0, 0, 15, 0);
            layout.addView(progressBar);
            TextView textView = new TextView(this);
            textView.setText("加载中...");
            textView.setGravity(Gravity.CENTER_VERTICAL);
            layout.addView(textView);
            layout.setGravity(Gravity.CENTER);
            loadingLayout = new LinearLayout(this);
            loadingLayout.addView(layout);
            loadingLayout.setGravity(Gravity.CENTER);
        }
        
        private class scrollListener implements OnScrollListener {
            @Override
            public void onScroll(AbsListView view, int firstVisibleItem,
                    int visibleItemCount, int totalItemCount) {
                // 当listView中没有数据,或者数据超过10条,或者不是10的整数倍(即数据不足)时隐藏“更多”并取消onScroll事件的绑定            if (mMyAdapter.getCount() >= 10 || mMyAdapter.getCount() % 10 > 0
                        || mMyAdapter.getCount() == 0) {
                 listView.removeFooterView(loadingLayout);
                    listView.setOnScrollListener(null);
                }
                lastItem = firstVisibleItem + visibleItemCount - 1;// 这里减一是因为有FootView
            }        @Override
            public void onScrollStateChanged(AbsListView view, int scrollState) {
                if ((lastItem+1) == mMyAdapter.getCount()
                        && scrollState == OnScrollListener.SCROLL_STATE_IDLE) {
                    // 进行翻页操作
                    new scrollTask().execute(OnScrollListener.SCROLL_STATE_IDLE);
                }        }
        }
        public class readTask extends AsyncTask<Object, Void, Void> 
        {
            @Override
    protected Void doInBackground(Object... arg0) 
            {
             int page=Integer.parseInt(arg0[0].toString());
             msgIds1=dataListViewData.MsgFirst(page+1);
    msgIds2=dataListViewData.MsgSecond(page+1);
    msgIds3=dataListViewData.MsgThird(page+1);
    bit1=dataListViewData.Bit(page+1);
    return null;
    } @Override
            protected void onPostExecute(Void result) 
    {
                listView.addFooterView(loadingLayout);
                
                mMyAdapter = new ImageAdapter(msgIds1,msgIds2,msgIds3,bit1);
                listView.setAdapter(mMyAdapter);
                listView.setOnScrollListener(new scrollListener());
            }
        }
        public class scrollTask extends AsyncTask<Object, Void, Void> 
        {        
            @Override
            protected Void doInBackground(Object... arg0) {
             try {
             int page=Integer.parseInt(arg0[0].toString());
                 msgIds1=dataListViewData.MsgFirst(page+2);
         msgIds2=dataListViewData.MsgSecond(page+2);
         msgIds3=dataListViewData.MsgThird(page+2);
         bit1=dataListViewData.Bit(page+2);
               
        
    } catch (Exception e) {
    Toast.makeText(ListMainActivity.this, e.toString(), Toast.LENGTH_LONG);
    }
            
                return null;
            }        @Override
            protected void onPostExecute(Void result) {
                mMyAdapter.notifyDataSetChanged();
            }
        }
        public Handler handler = new Handler() 
        {        public void handleMessage(Message msg) 
            {
             try {
             switch (msg.what) {
                    case 1: 
                    String line1=(String)msg.getData().getString("line1");
                    String line2=(String)msg.getData().getString("line2");
                    String line3=(String)msg.getData().getString("line3");
                     int lineNo=(int)msg.getData().getInt("lineNo");
                    
                     Toast.makeText(ListMainActivity.this, "选中第"+(lineNo+1)+"行,隐藏内容:\n"+line3+
                     "\n正文内容:\n"+line1+"\n"+line2,Toast.LENGTH_LONG).show();
                        break;
                    }
    } catch (Exception e) {
    Toast.makeText(ListMainActivity.this, e.getMessage(),Toast.LENGTH_LONG).show();
    }
                super.handleMessage(msg);
            }
        };
        
        public class ImageAdapter extends BaseAdapter 
        {
         /*声明变量*/
            int mGalleryItemBackground;
            private Bitmap[] bit;
         private String[] msg1;
         private String[] msg2;
         private String[] msg3;
            /*ImageAdapter的构造符*/
            public ImageAdapter(String[] Msg1,String[] Msg2,String[] Msg3,Bitmap[] Bit1) 
            {            this.bit=Bit1;
             this.msg1=Msg1;
             this.msg2=Msg2;
             this.msg3=Msg3; 
            }        int count=10;
    @Override
    public int getCount() {
    return count;
    }
    /*一定要重写的方法getItem,传回position*/
    @Override
    public Object getItem(int position) {
    return position;
    }  /*一定要重写的方法getItemId,传并position*/
    @Override
    public long getItemId(int position) {
    return position;
    } /*几定要重写的方法getView,传并几View对象*/
    @Override
    public View getView(int position, View convertView, ViewGroup parent)
    {
    View view;
    view = getLayoutInflater().inflate(R.layout.list_row, null);
    try {
    ReferenceHolder holder = new ReferenceHolder();
    holder.image=(ImageView)view.findViewById(R.id.imageView01);
    holder.text1=(TextView)view.findViewById(R.id.txtLink1);//初始化TextView
    holder.text2=(TextView)view.findViewById(R.id.txtLink2);//初始化TextView
    holder.text3=(TextView)view.findViewById(R.id.txtLink3);//初始化TextView
    holder.button=(Button)view.findViewById(R.id.btSelect01);//初始化Button
    view.setTag(holder);

    holder.image.setImageBitmap(bit[position]);//设置图片
    holder.image.setScaleType(ImageView.ScaleType.FIT_CENTER);

    holder.text1.setText(msg1[position]);//设置内容
    holder.text1.setTextSize(16);//设置字体大小
    holder.text1.setTextColor(Color.WHITE);//设置字体颜色 holder.text2.setText(msg2[position]);//设置内容
    holder.text2.setTextSize(16);//设置字体大小
    holder.text2.setTextColor(Color.WHITE);//设置字体颜色

    holder.text3.setText(msg3[position]);//设置内容
    holder.button.setText("下载");

    final String line1=msg1[position];
    final String line2=msg2[position];
    final String line3=msg3[position];
    final int lineNo = position;
    holder.button.setOnClickListener(new OnClickListener() 
    {
    @Override
    public void onClick(View v) 
    {
    Message message = new Message();                        message.what = 1;
                            Bundle b=new Bundle(); 
                            b.putString("line1", line1);  
                            b.putString("line2", line2);
                            b.putString("line3", line3);
                         b.putInt("lineNo", lineNo);   
                         message.setData(b); 
                            handler.sendMessage(message);
    }
    });
    } catch (Exception e) {
    Toast.makeText(ListMainActivity.this, e.getMessage(),Toast.LENGTH_LONG).show();
    }

                return view; }
        }
        
        static class ReferenceHolder {     
         public ImageView image;     
         public TextView text1; 
         public TextView text2;
         public TextView text3;
         public Button button;
         public LinearLayout layout;
        }
    }
      

  8.   

    ListViewData.javapackage com.myAndroid.exercise;import android.graphics.Bitmap;
    import android.graphics.BitmapFactory;
    public class ListViewData 
    {
    String[] msgFirst1={
    "01 第一行内容","02 第一行内容","03 第一行内容","04 第一行内容","05 第一行内容",
    "06 第一行内容","07 第一行内容","08 第一行内容","09 第一行内容","10 第一行内容"};
    String[] msgFirst2={
    "11 第一行内容","12 第一行内容","13 第一行内容","14 第一行内容","15 第一行内容",
    "16 第一行内容","17 第一行内容","18 第一行内容","19 第一行内容","20 第一行内容"};
    String[] msgFirst3={
    "21 第一行内容","22 第一行内容","23 第一行内容","24 第一行内容","25 第一行内容",
    "26 第一行内容","27 第一行内容","28 第一行内容","29 第一行内容","30 第一行内容"};
    String[] msgFirst4={
    "31 第一行内容","32 第一行内容","33 第一行内容","34 第一行内容","35 第一行内容",
    "36 第一行内容","37 第一行内容","38 第一行内容","39 第一行内容","40 第一行内容"};
    String[] msgFirst5={
    "41 第一行内容","42 第一行内容","43 第一行内容","44 第一行内容","45 第一行内容",
    "46 第一行内容","47 第一行内容","48 第一行内容","49 第一行内容","50 第一行内容"};
    String[] msgSecond1={
    "01 第二行内容","02 第二行内容","03 第二行内容","04 第二行内容","05 第二行内容",
    "06 第二行内容","07 第二行内容","08 第二行内容","09 第二行内容","10 第二行内容"};
    String[] msgSecond2={
    "11 第二行内容","12 第二行内容","13 第二行内容","14 第二行内容","15 第二行内容",
    "16 第二行内容","17 第二行内容","18 第二行内容","19 第二行内容","20 第二行内容"};
    String[] msgSecond3={
    "21 第二行内容","22 第二行内容","23 第二行内容","24 第二行内容","25 第二行内容",
    "26 第二行内容","27 第二行内容","28 第二行内容","29 第二行内容","30 第二行内容"};
    String[] msgSecond4={
    "31 第二行内容","32 第二行内容","33 第二行内容","34 第二行内容","35 第二行内容",
    "36 第二行内容","47 第二行内容","38 第二行内容","39 第二行内容","40 第二行内容"};
    String[] msgSecond5={
    "41 第二行内容","42 第二行内容","43 第二行内容","44 第二行内容","45 第二行内容",
    "46 第二行内容","47 第二行内容","48 第二行内容","49 第二行内容","50 第二行内容"};
    String[] msgThird1={
    "01 隐藏内容","02 隐藏内容","03 隐藏内容","04 隐藏内容","05 隐藏内容",
    "06 隐藏内容","07 隐藏内容","08 隐藏内容","09 隐藏内容","10 隐藏内容"};
    String[] msgThird2={
    "11 隐藏内容","12 隐藏内容","13 隐藏内容","14 隐藏内容","15 隐藏内容",
    "16 隐藏内容","17 隐藏内容","18 隐藏内容","19 隐藏内容","20 隐藏内容"};
    String[] msgThird3={
    "21 隐藏内容","22 隐藏内容","23 隐藏内容","24 隐藏内容","25 隐藏内容",
    "26 隐藏内容","27 隐藏内容","28 隐藏内容","29 隐藏内容","30 隐藏内容"};
    String[] msgThird4={
    "31 隐藏内容","32 隐藏内容","33 隐藏内容","34 隐藏内容","35 隐藏内容",
    "36 隐藏内容","37 隐藏内容","38 隐藏内容","39 隐藏内容","40 隐藏内容"};
    String[] msgThird5={
    "41 隐藏内容","42 隐藏内容","43 隐藏内容","44 隐藏内容","45 隐藏内容",
    "46 隐藏内容","47 隐藏内容","48 隐藏内容","49 隐藏内容","50 隐藏内容"};
    String[] imagepath={
    "/sdcard/abc.jpg","/sdcard/milan.jpg","/sdcard/basa.jpg","/sdcard/manlian.jpg","/sdcard/abc.jpg"};
    Bitmap bit01=BitmapFactory.decodeFile(imagepath[0]);
    Bitmap bit02=BitmapFactory.decodeFile(imagepath[1]);
    Bitmap bit03=BitmapFactory.decodeFile(imagepath[2]);
    Bitmap bit04=BitmapFactory.decodeFile(imagepath[3]);
    Bitmap bit05=BitmapFactory.decodeFile(imagepath[4]);
    Bitmap[] bit1={bit01,bit02,bit03,bit04,bit05,bit01,bit02,bit03,bit04,bit05};
    Bitmap[] bit2={bit01,bit02,bit03,bit04,bit05,bit01,bit02,bit03,bit04,bit05};
    Bitmap[] bit3={bit01,bit02,bit03,bit04,bit05,bit01,bit02,bit03,bit04,bit05};
    Bitmap[] bit4={bit01,bit02,bit03,bit04,bit05,bit01,bit02,bit03,bit04,bit05};
    Bitmap[] bit5={bit01,bit02,bit03,bit04,bit05,bit01,bit02,bit03,bit04,bit05};
    String[] msgFirstAll={
    "01 第一行内容","02 第一行内容","03 第一行内容","04 第一行内容","05 第一行内容",
    "06 第一行内容","07 第一行内容","08 第一行内容","09 第一行内容","10 第一行内容",
    "11 第一行内容","12 第一行内容","13 第一行内容","14 第一行内容","15 第一行内容",
    "16 第一行内容","17 第一行内容","18 第一行内容","19 第一行内容","20 第一行内容",
    "21 第一行内容","22 第一行内容","23 第一行内容","24 第一行内容","25 第一行内容",
    "26 第一行内容","27 第一行内容","28 第一行内容","29 第一行内容","30 第一行内容",
    "31 第一行内容","32 第一行内容","33 第一行内容","34 第一行内容","35 第一行内容",
    "36 第一行内容","37 第一行内容","38 第一行内容","39 第一行内容","40 第一行内容",
    "41 第一行内容","42 第一行内容","43 第一行内容","44 第一行内容","45 第一行内容",
    "46 第一行内容","47 第一行内容","48 第一行内容","49 第一行内容","50 第一行内容"};
    String[] msgSecondAll={
    "01 第二行内容","02 第二行内容","03 第二行内容","04 第二行内容","05 第二行内容",
    "06 第二行内容","07 第二行内容","08 第二行内容","09 第二行内容","10 第二行内容",
    "11 第二行内容","12 第二行内容","13 第二行内容","14 第二行内容","15 第二行内容",
    "16 第二行内容","17 第二行内容","18 第二行内容","19 第二行内容","20 第二行内容",
    "21 第二行内容","22 第二行内容","23 第二行内容","24 第二行内容","25 第二行内容",
    "26 第二行内容","27 第二行内容","28 第二行内容","29 第二行内容","30 第二行内容",
    "31 第二行内容","32 第二行内容","33 第二行内容","34 第二行内容","35 第二行内容",
    "36 第二行内容","47 第二行内容","38 第二行内容","39 第二行内容","40 第二行内容",
    "41 第二行内容","42 第二行内容","43 第二行内容","44 第二行内容","45 第二行内容",
    "46 第二行内容","47 第二行内容","48 第二行内容","49 第二行内容","50 第二行内容"};
    String[] msgThirdAll={
    "01 隐藏内容","02 隐藏内容","03 隐藏内容","04 隐藏内容","05 隐藏内容",
    "06 隐藏内容","07 隐藏内容","08 隐藏内容","09 隐藏内容","10 隐藏内容",
    "11 隐藏内容","12 隐藏内容","13 隐藏内容","14 隐藏内容","15 隐藏内容",
    "16 隐藏内容","17 隐藏内容","18 隐藏内容","19 隐藏内容","20 隐藏内容",
    "21 隐藏内容","22 隐藏内容","23 隐藏内容","24 隐藏内容","25 隐藏内容",
    "26 隐藏内容","27 隐藏内容","28 隐藏内容","29 隐藏内容","30 隐藏内容",
    "31 隐藏内容","32 隐藏内容","33 隐藏内容","34 隐藏内容","35 隐藏内容",
    "36 隐藏内容","37 隐藏内容","38 隐藏内容","39 隐藏内容","40 隐藏内容",
    "41 隐藏内容","42 隐藏内容","43 隐藏内容","44 隐藏内容","45 隐藏内容",
    "46 隐藏内容","47 隐藏内容","48 隐藏内容","49 隐藏内容","50 隐藏内容"};
    Bitmap[] bitAll={
    bit01,bit02,bit03,bit04,bit05,bit01,bit02,bit03,bit04,bit05,
    bit01,bit02,bit03,bit04,bit05,bit01,bit02,bit03,bit04,bit05,
    bit01,bit02,bit03,bit04,bit05,bit01,bit02,bit03,bit04,bit05,
    bit01,bit02,bit03,bit04,bit05,bit01,bit02,bit03,bit04,bit05,
    bit01,bit02,bit03,bit04,bit05,bit01,bit02,bit03,bit04,bit05};

    public String[] MsgFirst(int num)
    {
    String[] msg=null;
    switch(num)
    {
    case 1:
    msg = msgFirst1;
    break;
    case 2:
    msg = msgFirst2;
    break;
    case 3:
    msg = msgFirst3;
    break;
    case 4:
    msg = msgFirst4;
    break;
    case 5:
    msg = msgFirst5;
    break;

    }
    return msg;
    }

    public String[] MsgSecond(int num)
    {
    String[] msg=null;
    switch(num)
    {
    case 1:
    msg = msgSecond1;
    break;
    case 2:
    msg = msgSecond2;
    break;
    case 3:
    msg = msgSecond3;
    break;
    case 4:
    msg = msgSecond4;
    break;
    case 5:
    msg = msgSecond5;
    break;

    }
    return msg;
    }
    public String[] MsgThird(int num)
    {
    String[] msg=null;
    switch(num)
    {
    case 1:
    msg = msgThird1;
    break;
    case 2:
    msg = msgThird2;
    break;
    case 3:
    msg = msgThird3;
    break;
    case 4:
    msg = msgThird4;
    break;
    case 5:
    msg = msgThird5;
    break;

    }
    return msg;
    }
    public Bitmap[] Bit(int num)
    {
    Bitmap[] msg=null;
    switch(num)
    {
    case 1:
    msg = bit1;
    break;
    case 2:
    msg = bit2;
    break;
    case 3:
    msg = bit3;
    break;
    case 4:
    msg = bit4;
    break;
    case 5:
    msg = bit5;
    break;

    }
    return msg;
    }
    }