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("刚刚");
};
该代码仅供本人参考,如有雷同纯属巧合!!!