XListView 下拉刷新 上拉记载 (此方法只能在Android Studio中使用!)

本文介绍了一个简单的Android应用案例,该应用利用XListView实现了上拉加载更多及下拉刷新的功能,并通过AsyncTask进行后台数据请求,使用Gson进行数据解析,最后更新UI显示最新数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

用到的只有不过10左右代码  如下 :


public class MainActivity extends AppCompatActivity implements XListView.IXListViewListener {
    XListView xlist;
    List<Newslist> data = new ArrayList<Newslist>();
    private int aa = 1;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
       //XListView 控件
        xlist = (XListView) findViewById(R.id.xlist);
        //调用解析数据的方法
        Shua();
        //允许上拉加载
        xlist.setPullLoadEnable(true);
         //允许下拉刷新
        xlist.setPullRefreshEnable(true);
         //在当前页面的监听
        xlist.setXListViewListener(MainActivity.this);
}
//定义一个方法 里面写解析的代码    public void Shua() {    
//使用异步 来解析   AsyncTask此方法和Hander显示  不过是轻量级的   
   
          new AsyncTask<String, Integer, String>() {    
        
	 //实现俩个方法doInBackground () 和onPostExecute()       
            @Override       
	    protected String doInBackground (String...strings){      
		String str = "";       
		try {            
			//获取连接          
			URL url = new URL("https://api.tianapi.com/wxnew/?key=8d6e3228d25298f13af4fc40ce6c9679&num=10&page=" + aa);       
			HttpURLConnection conne = (HttpURLConnection) url.openConnection();    
			conne.setReadTimeout(5000);           
			conne.setConnectTimeout(5000);          
			int responseCode = conne.getResponseCode();       
			if (responseCode == 200) {               
				InputStream in = conne.getInputStream();        
				byte[] by = new byte[1024];             
				int len = 0;               
				while ((len = in.read(by)) != -1) {       
					str += new String(by, 0, len);         
					}           
				}       
			} catch (MalformedURLException e) {   
				e.printStackTrace();      
				} catch (IOException e) {   
					e.printStackTrace();    
					}        return str;   
					}           
	//实现俩个方法doInBackground () 和onPostExecute()       
	@Override       
	protected void onPostExecute (String s){       
		//使用Gson解析        Gson gson = new Gson();     
		JsonRootBean j = gson.fromJson(s, JsonRootBean.class);  
		data = j.getNewslist();        
		//设置适配器        
		Myadpader myadpader = new Myadpader(data, MainActivity.this);  
		xlist.setAdapter(myadpader);       
		super.onPostExecute(s);   
		}   
	}.execute();
	}
      }	
   }
}
//==========================================重要的在这里============================================
//实现的俩个方法   onRefresh() 和 onLoadMore()
    @Override
    public void onRefresh() {
        data.clear();
        //调用解析数据的方法
        Shua();
        xlist.setRefreshTime("刚刚");
        //停止刷新
        xlist.stopRefresh();

    }

    @Override
    public void onLoadMore() {

        aa++;
        //调用解析数据的方法
        Shua();
        //停止加载
        xlist.stopLoadMore();

    }
}
需要添加(依赖)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值