Xml游标
Mainactivity
package com.exmple.xmlstream; import java.util.ArrayList;
import java.util.List; import com.exmple.unet.NetUtil;
import com.exmple.vo.MyNewslist;
import com.exmple.vo.Super;
import com.thoughtworks.xstream.XStream; import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;
import android.support.v4.view.ViewPager;
import android.support.v4.view.ViewPager.OnPageChangeListener;
import android.app.Activity;
import android.graphics.Color; import android.util.DisplayMetrics;
import android.view.View;
import android.view.Window;
import android.widget.LinearLayout;
import android.widget.LinearLayout.LayoutParams;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.RadioGroup.OnCheckedChangeListener;
import android.widget.TextView; public class MainActivity extends FragmentActivity implements
OnCheckedChangeListener { private ViewPager vp; private RadioGroup rg;
String[] str = new String[] { "资讯", "热点", "博客", "推荐" }; private List<Fragment> list; private RadioButton rb1; private RadioButton rb2; private RadioButton rb3; private RadioButton rb4; private LinearLayout line; private int width; private List<TextView> list_tv; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_main);
DisplayMetrics outMetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(outMetrics);
width = outMetrics.widthPixels;
/*int heightPixels = outMetrics.heightPixels;*/
rg = (RadioGroup) findViewById(R.id.rg);
vp = (ViewPager) findViewById(R.id.vp);
rb1 = (RadioButton) findViewById(R.id.button1);
rb2 = (RadioButton) findViewById(R.id.button2);
rb3 = (RadioButton) findViewById(R.id.button3);
rb4 = (RadioButton) findViewById(R.id.button4);
line = (LinearLayout) findViewById(R.id.line);
rb1.setText(str[0]);
rb2.setText(str[1]);
rb3.setText(str[2]);
rb4.setText(str[3]);
getData();
setColumn();
FragmentManager fm = getSupportFragmentManager();
setYoubiao(vp.getCurrentItem()); Viewpage1 fa = new Viewpage1(fm, list);
vp.setAdapter(fa);
vp.setCurrentItem(0);
rb1.setTextColor(Color.BLUE); rg.setOnCheckedChangeListener(this);
vp.setOnPageChangeListener(new OnPageChangeListener() { @Override
public void onPageSelected(int arg0) { switch (arg0) {
case 0:
setYoubiao(arg0);
rb1.setTextColor(Color.BLUE);
rb2.setTextColor(Color.BLACK);
rb3.setTextColor(Color.BLACK);
rb4.setTextColor(Color.BLACK);
break; case 1:
setYoubiao(arg0);
rb1.setTextColor(Color.BLACK);
rb2.setTextColor(Color.BLUE);
rb3.setTextColor(Color.BLACK);
rb4.setTextColor(Color.BLACK);
break;
case 2:
setYoubiao(arg0);
rb1.setTextColor(Color.BLACK);
rb2.setTextColor(Color.BLACK);
rb3.setTextColor(Color.BLUE);
rb4.setTextColor(Color.BLACK);
break;
case 3:
setYoubiao(arg0);
rb1.setTextColor(Color.BLACK);
rb2.setTextColor(Color.BLACK);
rb3.setTextColor(Color.BLACK);
rb4.setTextColor(Color.BLUE);
break;
} } @Override
public void onPageScrolled(int arg0, float arg1, int arg2) {
// TODO Auto-generated method stub } @Override
public void onPageScrollStateChanged(int arg0) {
// TODO Auto-generated method stub }
});
// http://www.oschina.net/action/api/news_list
// http://www.sciencenet.cn/xml/iphoneInterface.aspx?type=news&nums=20&pass= } private void setColumn() { list_tv = new ArrayList<TextView>();
// for循环
for (int i = 0; i < str.length; i++) { // 创建textview
TextView tv = new TextView(this);
tv.setBackgroundColor(Color.GREEN);
LinearLayout.LayoutParams params_1 = new LayoutParams(width / 4, 10);
tv.setVisibility(View.INVISIBLE);
line.addView(tv, params_1); // 收集textview,即游标
list_tv.add(tv); } } private void setYoubiao(int arg0) {
TextView textView = list_tv.get(arg0); // 将当前的游标显示
textView.setVisibility(View.VISIBLE); // 将其他的游标隐藏
for (int i = 0; i < list_tv.size(); i++) {
TextView textView2 = list_tv.get(i); if (textView2 != textView) {
textView2.setVisibility(View.INVISIBLE);
}
} } private List<Fragment> getData() {
list = new ArrayList<Fragment>();
for (int i = 0; i < str.length; i++) {
F1 f1 = new F1();
Bundle bu = new Bundle();
bu.putString("text", str[i]);
f1.setArguments(bu);
list.add(f1); }
return list; } @Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
switch (checkedId) {
case R.id.button1:
vp.setCurrentItem(0); break; case R.id.button2:
vp.setCurrentItem(1); break; case R.id.button3:
vp.setCurrentItem(2); break; case R.id.button4:
vp.setCurrentItem(3); break; } } }
适配器
package com.exmple.xmlstream; import java.util.ArrayList;
import java.util.HashMap;
import java.util.List; import com.exmple.ap.Apater;
import com.exmple.ap.Apater1;
import com.exmple.bovo.BoSuper;
import com.exmple.bovo.MyBlogs;
import com.exmple.bovo.Myblog;
import com.exmple.tong.PullToRefreshLayout;
import com.exmple.tong.PullToRefreshLayout.OnRefreshListener;
import com.exmple.tong.PullableListView;
import com.exmple.tool.UserTool;
import com.exmple.unet.NetUtil;
import com.exmple.vo.MyNew;
import com.exmple.vo.MyNewslist;
import com.exmple.vo.Super;
import com.thoughtworks.xstream.XStream; import android.content.Context;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.util.AttributeSet;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ListView; public class F1 extends Fragment {
Handler ha = new Handler() { public void handleMessage(Message msg) {
int i = msg.what; if (i == 1) {
String ma = msg.obj.toString();
XStream xs = new XStream();
xs.processAnnotations(Super.class);
Super fromXML = (Super) xs.fromXML(ma);
List<MyNew> newslist = fromXML.getNewslist().getNews();
System.out.println(newslist.toString());
if (page == 1) {
list.clear();
}
list.addAll(newslist);
update(); }
if (i == 2) {
String ma = msg.obj.toString();
XStream xs1 = new XStream();
xs1.processAnnotations(BoSuper.class);
BoSuper bo = (BoSuper) xs1.fromXML(ma);
List<Myblog> blog = bo.getBlogs().getBlog();
if (page == 1) {
list1.clear();
}
list1.addAll(blog);
update1();
} };
};
private Apater ap;
private Apater1 ap1;
private List<MyNew> list = new ArrayList<MyNew>();
private List<Myblog> list1 = new ArrayList<Myblog>();
int page = 1;
private PullableListView plistview;
private PullToRefreshLayout playout;
private String s;
private String url;
private View view; @Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) { Bundle bu = getArguments();
s = bu.getString("text");
HashMap<String, String> map = UserTool.getUrl();
url = map.get(s);
getData(); if (view == null) {
view = View.inflate(getActivity(), R.layout.f1, null);
playout = (PullToRefreshLayout) view.findViewById(R.id.layout); }
ViewGroup mParent = (ViewGroup) view.getParent(); if (mParent != null) {
mParent.removeView(view);
}
playout = (PullToRefreshLayout) view.findViewById(R.id.layout);
plistview = (PullableListView) view.findViewById(R.id.listview);
playout.setOnRefreshListener(new OnRefreshListener() { @Override
public void onRefresh(final PullToRefreshLayout pullToRefreshLayout) {
ha.postDelayed(new Runnable() {
@Override
public void run() {
page = 1;
getData();
// 千万别忘了告诉控件刷新完毕了哦!
pullToRefreshLayout
.refreshFinish(PullToRefreshLayout.SUCCEED);
} }, 1000); } @Override
public void onLoadMore(final PullToRefreshLayout pullToRefreshLayout) {
ha.postDelayed(new Runnable() {
@Override
public void run() {
page++;
getData();
// 千万别忘了告诉控件刷新完毕了哦!
pullToRefreshLayout
.loadmoreFinish(PullToRefreshLayout.SUCCEED);
} }, 1000); }
}); return view;
} private void getData() { new Thread() {
public void run() { if (s.equals("资讯") || s.equals("热点")) {
String str = NetUtil.getUrl(url,page);
ha.sendMessage(ha.obtainMessage(1, str));
} if (s.equals("博客") || s.equals("推荐")) { String str = NetUtil.getUrl(url,page);
ha.sendMessage(ha.obtainMessage(2, str));
} };
}.start(); } public void update() {
// 判断ba是否为空
if (ap == null) {
ap = new Apater(list, getActivity());
// 为lv添加适配器
plistview.setAdapter(ap);
} else {
// 刷新适配器
ap.UpDataAdapter(list);
}
} public void update1() {
// 判断ba是否为空
if (ap1 == null) {
ap1 = new Apater1(list1, getActivity());
// 为lv添加适配器
plistview.setAdapter(ap1);
} else {
// 刷新适配器
ap1.UpDataAdapter(list1);
}
} }
Xml游标的更多相关文章
- 【Java】Java XML 技术专题
XML 基础教程 XML 和 Java 技术 Java XML文档模型 JAXP(Java API for XML Parsing) StAX(Streaming API for XML) XJ(XM ...
- 使用 XMLBeans 进行编程
深入考察 XMLBeans 的特性和功能.本文通过一个简单的例子介绍 XMLBeans 技术,然后一步一步地介绍编译和绑定的过程,讨论 XML 游标.标记和 XQuery 表达式等高级特性.本文还 ...
- HowToDoInJava 其它教程 2 · 翻译完毕
原文:HowToDoInJava 协议:CC BY-NC-SA 4.0 欢迎任何人参与和完善:一个人可以走的很快,但是一群人却可以走的更远. ApacheCN 学习资源 目录 JMS 教程 JMS 教 ...
- sql 通过游标 拆分xml结构
-----------------------定义游标变量------------------------------------------ DECLARE @propertyid INT D ...
- sql server中对xml进行操作
一.前言 SQL Server 2005 引入了一种称为 XML 的本机数据类型.用户可以创建这样的表,它在关系列之外还有一个或多个 XML 类型的列:此外,还允许带有变量和参数.为了更好地支持 XM ...
- mybatis调用存储过程 无参、带有输入输出参数,输出游标类型的 存储
存储过程在小公司用的不多,但是如果业务比较复杂或者性能要求比较苛刻的时候存储过程就派上用场了,ibatis的前期的一些版本貌似不支持存储过程因此我选择了mybatis来做实验. 1.无输入和输出参数的 ...
- T-Sql(五)xml操作
t-sql中的xml操作在我们平时做项目的过程中用的很少,因为我们处理的数据量很少,除非一些用到xml的地方,t-sql中xml操作一般用在数据量很大,性能优化的地方,当然我在平时做项目的时候也是没用 ...
- sql 游标
--创建游标 DECLARE cursor_name CURSOR [ LOCAL | GLOBAL ] [ FORWARD_ONLY | SCROLL ] [ STATIC | KEYSET | D ...
- XML 文档和数据
.NET Framework 4.5 其他版本 .NET Framework 提供了一组全面而集成的类,可用来方便地生成可以识别 XML 的应用程序. 通过以下命名空间中的类,可以分析和编写 XML, ...
随机推荐
- Miscellaneous--Tech
1. Questions: 1)EF.2)MVC/MVP/MVVM.3)page lifecyle. preInit,Init,InitCompleted,preLoad,Load,LoadCompl ...
- JavaScript:JavaScript语法的详细介绍
JavaScript语法:只要Java会了,基本上javascript语法就会了. ——变量的定义 ——程序的结构控制 ——数组操作 ——函数的定义即使用 基本的test.html代码如下,它会导入下 ...
- 优化系统资源ulimit《高性能Linux服务器构建实战:运维监控、性能调优与集群应用》
优化系统资源ulimit<高性能Linux服务器构建实战:运维监控.性能调优与集群应用> 假设有这样一种情况,一台Linux 主机上同时登录了10个用户,在没有限制系统资源的情况下,这10 ...
- Android Mina框架的学习笔记
Apache MINA(Multipurpose Infrastructure for Network Applications) 是 Apache 组织一个较新的项目,它为开发高性能和高可用性的网络 ...
- python or not python
python or not python 我挺喜欢 python 这种编程语言,它本身的丰富的动态特性让这种语言的表达能力很强,基本上 python 上写的一行代码,可实现 java 上 1.5 到 ...
- iOS网络协议 HTTP/TCP/IP浅析
一.TCP/IP协议 话说两台电脑要通讯就必须遵守共同的规则,就好比两个人要沟通就必须使用共同的语言一样.一个只懂英语的人,和一个只懂中文的人由于没有共同的语言(规则)就没办法沟通.两台电 ...
- 使用NSURLSession请求需要AD认证的HTTPS服务器
关键代码:使用后台下载PDF文件 - (void)startDownloadPDF{ NSURLSession *session = [self session]; NSString *downloa ...
- CSS浮动与清浮动
浮动 ( float css属性) float : left right Elements are floated horizontally, this means that an element c ...
- ObjectMonitor,ObjectWaiter 实现wait(),notify()
0.java对象锁监视器 在JVM的规范中,有这么一些话:“在JVM中,每个对象和类在逻辑上都是和一个监视器相关联的”“为了实现监视器的排他性监视能力,JVM为每一个对象和类都关联一个锁”“锁住了一个 ...
- Java线程同步和线程通信
一.线程同步 当多个线程访问同一个数据时,非常容易出现线程安全问题.这时候就需要用线程同步. 不可变类总是线程安全的,因为它的对象状态是不可改变的,但可变类对象需要额外的方法来保证线程安全. 1.同步 ...