XlistView,Xml解析,PagerSlidingTabStrip

PagerSlidingTabStrip平滑操作,需要继承类库:

XML:

<span style="font-size:14px;"><com.astuetz.PagerSlidingTabStrip 
        android:id="@+id/psts"
	    android:layout_width="match_parent"
	    android:layout_height="40dip"
        ></com.astuetz.PagerSlidingTabStrip>
    
    <android.support.v4.view.ViewPager
        android:id="@+id/vp"
        android:layout_width="match_parent"
        android:layout_height="fill_parent"
        /></span>

Activity:

<span style="font-size:14px;">//定义变量
	private PagerSlidingTabStrip psts;
	private ViewPager vp;
	private List<String> ls;
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		//找控件
		into();
		
		add();
		//设置适配器
		vp.setAdapter(new MangerAdapter(getSupportFragmentManager(), ls));
		psts.setViewPager(vp);
		psts.setIndicatorColor(Color.GREEN);
		psts.setShouldExpand(true);
		vp.setCurrentItem(0);
	}
	private void into() {
		psts = (PagerSlidingTabStrip) findViewById(R.id.psts);
		vp = (ViewPager) findViewById(R.id.vp);
		
	}
	//xml解析
	private void add() {
		ls = new ArrayList<String>();
		ls.add("看看咨询");
		ls.add("看看热点");
		ls.add("看看博客");
		ls.add("看看推荐");
		
	}</span>
Adapter适配器,继承FragmentPagerAdapter:

<span style="font-size:14px;">private List<String> ls;
	
	public MangerAdapter(FragmentManager fm, List<String> ls) {
		super(fm);
		this.ls = ls;
	}

	@Override
	public CharSequence getPageTitle(int position) {
		return ls.get(position);
	}

	@Override
	public int getCount() {
		return ls != null ? ls.size():0;
	}

	@Override
	public Fragment getItem(int arg0) {
		switch (arg0) {
		case 0:
			return new Frag1();
		case 1:
			return new Frag2();
		default :
			return new Frag3();
		}
	}</span>
XML解析:

需要定义bean包,list集合接收内容,发送给Handler机制;

<span style="font-size:14px;">	private void into(final String url) {
		new Thread(){
			public void run() {
				HttpURLConnection con; 
				try {
					con = (HttpURLConnection) new URL(url).openConnection();
					con.setConnectTimeout(15000);
					con.setRequestMethod("GET");
					int i = con.getResponseCode();
					if(i == 200){
						InputStream input = con.getInputStream();
						XmlPullParser parser = Xml.newPullParser();
						parser.setInput(input ,"UTF-8");
						int event = parser.getEventType();
						
						String str = null;
						//XmlPullParser.END_DOCUMENT文档结束
						while (event != XmlPullParser.END_DOCUMENT) {
							switch (event) {
							case XmlPullParser.START_DOCUMENT:
								
								break;
							//XmlPullParser.START_TAG节点
							case XmlPullParser.START_TAG:
								str = parser.getName();
								if("news".equals(str)){
									news = new News();
								}
								break;
							//XmlPullParser.TEXT内容
							case XmlPullParser.TEXT:
								if("title".equals(str)){
									news.setTitle(parser.getText().trim());
								}
								if("body".equals(str)){
									news.setBody(parser.getText().trim());
								}
								if("commentCount".equals(str)){
									news.setCommentCount(parser.getText().trim());
								}
								if("author".equals(str)){
									news.setAuthor(parser.getText().trim());
								}
								if("pubDate".equals(str)){
									news.setPubDate(parser.getText().trim());
								}
								break;
								
							case XmlPullParser.END_TAG:
								str = parser.getName();
								if("news".equals(str)){
									list.add(news);
									hand.obtainMessage(0, list).sendToTarget();
									news = null;
								}
								str = "";
								break;

							}
							event = parser.next();
						}//while()
						
					}//if(i == 200)
					
				} catch (Exception e) {
					e.printStackTrace();
				}
			};
		}.start();
		
	}</span>
XlistView下拉刷新,上拉加载:

需要在github上下载原码,

<span style="font-size:14px;"> <string name="xlistview_header_hint_normal">下拉刷新</string>
    <string name="xlistview_header_hint_ready">松开刷新数据</string>
    <string name="xlistview_header_hint_loading">正在加载。。。</string>
    <string name="xlistview_header_last_time">上次更新时间:</string>
    <string name="xlistview_footer_hint_normal">查看更多</string>
    <string name="xlistview_footer_hint_ready">松开载入更多</string></span>
添加进 values / strings.xml 中;


这个图片需要加进drawable-hdpi中

代码实现:

设置支持下拉刷新,上拉加载,实现窗口

xlv.setPullLoadEnable(true);
xlv.setPullRefreshEnable(true);
xlv.setXListViewListener(new IXListViewListener() {
	
	@Override
	public void onRefresh() {
		currentState=STATE_REFRESH;
		STATE_REFRESH++;
		into("http://www.oschina.net/action/api/news_list/pageIndex="+currentState);			
			}
	@Override
	public void onLoadMore() {
		currentState=STATE_LOAD;
		STATE_LOAD++;
		into("http://www.oschina.net/action/api/news_list/pageIndex="+currentState);
		
	}
});
加载完成后,调用inload();

private void onload() {
<span style="white-space:pre">	</span>xlv.stopLoadMore();
<span style="white-space:pre">	</span>xlv.stopRefresh();
<span style="white-space:pre">	</span>xlv.setRefreshTime("刚刚");
	
};

该代码仅供本人参考,如有雷同纯属巧合!!!




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值