最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android實戰(zhàn)教程第四十三篇之上拉加載與下拉刷新

 更新時間:2016年11月15日 14:51:04   作者:楊道龍  
這篇文章主要為大家詳細(xì)介紹了Android實戰(zhàn)教程第四十三篇之上拉加載與下拉刷新,具有一定的參考價值,感興趣的小伙伴們可以參考一下

ListView的下拉刷新很常見,很多開源的框架都能做到這個效果,當(dāng)然也可以自己去實現(xiàn)。本篇案例是基于xlistview的。

布局:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
 xmlns:tools="http://schemas.android.com/tools" 
 android:layout_width="match_parent" 
 android:layout_height="match_parent" > 
 
 <me.maxwin.view.XListView 
  android:id="@+id/xlv" 
  android:layout_width="match_parent" 
  android:layout_height="match_parent" /> 
 
</RelativeLayout> 

主活動的代碼:

package com.itydl.xlistviewdemo; 
 
import java.text.SimpleDateFormat; 
import java.util.ArrayList; 
import java.util.Date; 
import java.util.List; 
 
import me.maxwin.view.XListView; 
import me.maxwin.view.XListView.IXListViewListener; 
import android.app.Activity; 
import android.graphics.Color; 
import android.os.Bundle; 
import android.os.Handler; 
import android.os.Message; 
import android.os.SystemClock; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.BaseAdapter; 
import android.widget.TextView; 
 
public class MainActivity extends Activity { 
 
 private XListView mXListView; 
 List<String> datas = new ArrayList<String>(); 
 private MyAdapter adapter; 
 private boolean isLoadMore;//是否正在加載更多數(shù)據(jù)的標(biāo)記 
  
 private long preTime;//上一次刷新的當(dāng)前系統(tǒng)時間毫秒值 
 private Handler handler = new Handler(){ 
  public void handleMessage(android.os.Message msg) { 
   if(isLoadMore){ 
    //消息是上拉加載更多 
    initDatas(); 
    isLoadMore = false; 
    //刷新完畢,關(guān)閉上拉加載效果 
    mXListView.stopLoadMore(); 
   }else{ 
    //消息是下拉刷新 
    datas.clear(); 
    initDatas(); 
    //刷新完畢,關(guān)閉下拉刷新效果 
    mXListView.stopRefresh(); 
   } 
   // 刷新listview 
   adapter.notifyDataSetChanged(); 
  }; 
 }; 
 
 @Override 
 protected void onCreate(Bundle savedInstanceState) { 
  super.onCreate(savedInstanceState); 
  setContentView(R.layout.activity_main); 
  initDatas(); 
  mXListView = (XListView) findViewById(R.id.xlv); 
  //設(shè)置適配器到ListView 
  adapter = new MyAdapter(); 
  mXListView.setAdapter(adapter); 
  initListener(); 
 } 
  
 private void initListener() { 
  //設(shè)置可以下拉刷新,默認(rèn)就是true 
  mXListView.setPullRefreshEnable(true); 
   
  //設(shè)置可以上拉加載,默認(rèn)是false 
  mXListView.setPullLoadEnable(true); 
   
  mXListView.setXListViewListener(new IXListViewListener() { 
    
   @Override 
   public void onRefresh() { 
    // 下拉刷新,實際發(fā)送Handler 
    //發(fā)送一個空消息,延遲兩秒后告知刷新數(shù)據(jù) 
    handler.sendMessageDelayed(Message.obtain(), 2000); 
    //添加上一次刷新的時間: 
    if(preTime != 0){ 
     mXListView.setRefreshTime(refreshData(preTime)); 
    } 
    preTime = System.currentTimeMillis(); 
   } 
 
   private String refreshData(long preTime) { 
    return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date(preTime)); 
   } 
 
   @Override 
   public void onLoadMore() { 
    //標(biāo)記正在加載更多,發(fā)送Handler 
    isLoadMore = true; 
    handler.sendMessageDelayed(Message.obtain(), 2000); 
   } 
  }); 
 } 
 
 /**模擬網(wǎng)絡(luò)數(shù)據(jù)*/ 
 private void initDatas() { 
  //實際開發(fā)應(yīng)該子線程執(zhí)行 
  for (int i = 0; i < 50; i++) { 
   datas.add("我是第" + i + "條數(shù)據(jù)"); 
  } 
 } 
 
 private class MyAdapter extends BaseAdapter{ 
 
  @Override 
  public int getCount() { 
   if(datas != null){ 
    return datas.size(); 
   } 
   return 0; 
  } 
 
  @Override 
  public Object getItem(int position) { 
   if(datas != null){ 
    return datas.get(position); 
   } 
   return null; 
  } 
 
  @Override 
  public long getItemId(int position) { 
   return position; 
  } 
 
  @Override 
  public View getView(int position, View convertView, ViewGroup parent) { 
   //模擬item為TextView 
   TextView textView = new TextView(MainActivity.this); 
   textView.setText(getItem(position)+""); 
   textView.setTextColor(Color.GREEN); 
   return textView; 
  } 
 } 
} 

短短幾行代碼已經(jīng)完成了主要功能,運(yùn)行如下:

喜歡的朋友可以關(guān)注我哦,本專欄會不定期更新簡單有趣的Android小文

相關(guān)文章

最新評論

云和县| 许昌县| 武汉市| 临沧市| 科技| 什邡市| 赣州市| 饶河县| 英吉沙县| 综艺| 醴陵市| 皋兰县| 璧山县| 沙河市| 河南省| 兰坪| 仪征市| 英德市| 二手房| 抚顺市| 封开县| 闵行区| 济宁市| 弋阳县| 天峻县| 拜泉县| 东辽县| 依兰县| 历史| 葫芦岛市| 海宁市| 资兴市| 阳信县| 许昌县| 定陶县| 射阳县| 乌兰察布市| 西城区| 东乡族自治县| 扎赉特旗| 宝坻区|