/**
*主布局
*/
<com.astuetz.PagerSlidingTabStrip
android:id="@+id/tabPager"
android:layout_width="match_parent"
android:layout_height="40dip"/>
<android.support.v4.view.ViewPager
android:id="@+id/vPager"
android:layout_width="match_parent"
android:layout_height="fill_parent"
/>
/**
*MainActivity里的设置导航头
*/
public class MainActivity extends FragmentActivity {
private PagerSlidingTabStrip psts;
private ViewPager vp;
private ArrayList<String> ls;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 找控件
into();
add();
// 设置适配器
vp.setAdapter(new FragmentAdapter(getSupportFragmentManager(), ls));
psts.setViewPager(vp);
//变颜色
psts.setIndicatorColor(Color.GREEN);
psts.setShouldExpand(true);
vp.setCurrentItem(0);
}
private void add() {
ls = new ArrayList<String>();
ls.add("看看咨询");
ls.add("看看热点");
ls.add("看看博客");
ls.add("看看推荐");
}
private void into() {
psts = (PagerSlidingTabStrip) findViewById(R.id.tabPager);
vp = (ViewPager) findViewById(R.id.vPager);
}
}
/**
*工具类
*/
public static String readUtils(String url) throws Exception{
//创建一个client
HttpClient client=new DefaultHttpClient();
//get输入地址
HttpGet get=new HttpGet(url);
//防止出现403
get.setHeader("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:47.0) Gecko/20100101 Firefox/47.0");
HttpResponse resp=client.execute(get);
//判断code是否正确
if(resp.getStatusLine().getStatusCode()==HttpStatus.SC_OK){
String json=EntityUtils.toString(resp.getEntity(), "utf-8");
return json;
}
return "";
}
/**
*适配器
*/
public class FragmentAdapter extends FragmentPagerAdapter {
private ArrayList<String> ls;
public FragmentAdapter(FragmentManager fm, ArrayList<String> ls) {
super(fm);
this.ls = ls;
}
@Override
public CharSequence getPageTitle(int position) {
return ls.get(position);
}
@Override
public Fragment getItem(int arg0) {
switch (arg0) {
case 0:
return new FragOne();
case 1:
return new FragTwo();
case 2:
return new FragThree();
default:
return new FragFour();
}
}
@Override
public int getCount() {
return ls != null ? ls.size() : 0;
}
}
/**
*解析
*/
public class FragOne extends Fragment {
private ArrayList<News> list;
private XListView xlv;
private int currentState;
private int STATE_REFRESH = 1;
private int STATE_LOAD = 2;
private News news;
Handler handler = new Handler() {
public void handleMessage(android.os.Message msg) {
if (msg.what == 0) {
OneAdapter adapter = new OneAdapter(list, getActivity());
xlv.setAdapter(adapter);
onload();
}
}
};
private void onload() {
xlv.stopLoadMore();
xlv.stopRefresh();
xlv.setRefreshTime("刚刚");
};
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.frag_one, container, false);
xlv = (XListView) view.findViewById(R.id.lv);
list = new ArrayList<News>();
xlv.setPullLoadEnable(true);
xlv.setPullRefreshEnable(true);
xlv.setXListViewListener(new IXListViewListener() {
@Override
public void onRefresh() {
currentState = STATE_REFRESH;
into("http://www.oschina.net/action/api/news_list/pageIndex=" + 2);
}
@Override
public void onLoadMore() {
currentState = STATE_LOAD;
into("http://www.oschina.net/action/api/news_list/pageIndex=" + 2);
}
});
String url = "http://www.oschina.net/action/api/news_list/pageIndex=" + 1;
into(url);
return view;
}
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);
handler.obtainMessage(0, list).sendToTarget();
news = null;
}
str = "";
break;
}
event = parser.next();
}
}
} catch (Exception e) {
e.printStackTrace();
}
};
}.start();
}
}
Fragment滑动加解析
最新推荐文章于 2024-04-01 07:54:30 发布