zoukankan      html  css  js  c++  java
  • 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);
    		}
    	}
    
    }
    

      

  • 相关阅读:
    [GO]使用bufio的文件读取方式
    php开发工程师面必问题
    一位资深php程序员在北京的面试30个题目
    GIT 分支管理:创建与合并分支、解决合并冲突
    linux下挂在u盘,移动硬盘的方法,转移服务器资料的时候,使用移动硬盘什么最方便了
    php后台对接ios,安卓,API接口设计和实践完全攻略,涨薪必备技能
    navicat 官方使用手册,中文版,快捷键大全
    Memcached之缓存雪崩,缓存穿透,缓存预热,缓存算法
    Memcache 笔记(2)
    Memcache笔记(1)
  • 原文地址:https://www.cnblogs.com/jsonfan/p/5352032.html
Copyright © 2011-2022 走看看