Get方式请求网络数据+Fragment+SharedPreferences

<span style="font-size:18px;">第一个活动界面
public class MainActivity extends FragmentActivity {

	private F1 f1;
	private F2 f2;
	private F3 f3;
	private F4 f4;
	private ArrayList<Fragment> list_fragment;
	private FragmentManager fm;
	private Button bt1;
	private Button bt2;
	private Button bt3;
	private Button bt4;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		// 创建Fragment对象
		f1 = new F1();
		f2 = new F2();
		f3 = new F3();
		f4 = new F4();
		list_fragment = new ArrayList<Fragment>();

		// 碎片管理器
		fm = getSupportFragmentManager();
		add();
		// 获得控件
		bt1 = (Button) findViewById(R.id.button1);
		bt2 = (Button) findViewById(R.id.button2);
		bt3 = (Button) findViewById(R.id.button3);
		bt4 = (Button) findViewById(R.id.button4);

		// 四个button按钮的点击事件
		bt1.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				show(f1);

			}
		});
		bt2.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				show(f2);

			}
		});
		bt3.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				show(f3);

			}
		});
		bt4.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				show(f4);

			}
		});
	}
         //添加方法
	 public void add() {
		FragmentTransaction ft = fm.beginTransaction();
		// 添加与隐藏
		ft.add(R.id.lin1, f1);
		ft.add(R.id.lin1, f2);
		ft.add(R.id.lin1, f3);
		ft.add(R.id.lin1, f4);
		// 添加数据
		list_fragment.add(f1);
		list_fragment.add(f2);
		list_fragment.add(f3);
		list_fragment.add(f4);
		ft.hide(f2);
		ft.hide(f3);
		ft.hide(f4);
		ft.commit();
	}
      //  显示方法

          public void show(Fragment f) {
		// 事务
		FragmentTransaction ft = fm.beginTransaction();
		for (Fragment frag : list_fragment) {
			ft.hide(frag);
		}
		ft.show(f);
		ft.commit();
	}

}

        第二个活动界面
</span><pre name="code" class="java">        public class TwoActivity extends Activity {

	private NewsInfo i;
	private SharedPreferences sha;
	private Set<String> hs;

	@SuppressLint("NewApi")
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_two);
               sha = getSharedPreferences("save", 0);
		hs = sha.getStringSet("id", new HashSet<String>());
		Intent intent = getIntent();
		i = (NewsInfo) intent.getSerializableExtra("info1");
		// 获得控件
		TextView tv1 = (TextView) findViewById(R.id.textView01);
		TextView tv2 = (TextView) findViewById(R.id.textView02);
		TextView tv3 = (TextView) findViewById(R.id.textView03);
		SmartImageView img = (SmartImageView) findViewById(R.id.imageView3);
		Button bt = (Button) findViewById(R.id.bu1);
		// 赋值
		tv1.setText(i.title);
		tv3.setText(i.intro);
		img.setImageUrl(i.kpic);

		tv2.setOnClickListener(new OnClickListener() {

			@SuppressLint("NewApi")
			@Override
			public void onClick(View v) {
				Toast.makeText(TwoActivity.this, "已经收藏", 0).show();
				String id = i.id;
				Editor ed = sha.edit();
				hs.add(id);
				ed.putStringSet("id", hs);
				ed.commit();
			}
		});

		bt.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				Intent it = new Intent(TwoActivity.this, MainActivity.class);
				ArrayList<String> list = new ArrayList<String>();
				for (String s : hs) {
					list.add(s);
				}
				it.putStringArrayListExtra("id", list);
				startActivity(it);
			
			}
		});
	}

}

第一个Ffragment
 
 
        public class F1 extends Fragment {

	private ListView lv;
	String path = "http://api.sina.cn/sinago/list.json?channel=hdpic_story&adid=4ad30dabe134695c3d7c3a65977d7e72&from=6042095012&chwm=12050_0001&imei=867064013906290&uid=802909da86d9f5fc&p=1";
	private HttpResponse httpResponse;
	private Myad ad;
	List<NewsInfo> info = new ArrayList<NewsInfo>();
	private NewsInfo info1;

	@Override
	public void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
	}

	@Override
	public View onCreateView(LayoutInflater inflater, ViewGroup container,
			Bundle savedInstanceState) {
		// 加载视图
		View v = inflater.inflate(R.layout.f1, null);
		// 获得控件
		lv = (ListView) v.findViewById(R.id.listView1);
		// 开启线程
		new Thread() {

			@Override
			public void run() {
				sendGet();
			}

		}.start();

		return v;
	}

	// 请求方法
	public void sendGet() {
		HttpClient httpClient = new DefaultHttpClient();
		// get方式请求
		HttpGet httpGet = new HttpGet(path);
		try {
			httpResponse = httpClient.execute(httpGet);
			if (httpResponse.getStatusLine().getStatusCode() == 200) {
				HttpEntity entity = httpResponse.getEntity();
				String str = EntityUtils.toString(entity);
				Gson gson = new Gson();
				Bean bean = gson.fromJson(str, Bean.class);
				info = bean.data.list;
				ArrayList<String> ids = getActivity().getIntent()
						.getStringArrayListExtra("id");
				if (ids != null) {
					ArrayList<NewsInfo> temp = new ArrayList<NewsInfo>();
					for (NewsInfo ni : info) {
						for (String id : ids) {
							if (ni.id.equals(id)) {
								temp.add(ni);
							}
						}
						
					}
					info = temp;
				}
				// 通过runOnUiThread方法改变主线程的控件
				getActivity().runOnUiThread(new Runnable() {

					@Override
					public void run() {
						ad = new Myad();
						lv.setAdapter(ad);
						lv.setOnItemClickListener(new OnItemClickListener() {

							@Override
							public void onItemClick(AdapterView<?> parent,
									View view, int position, long id) {
								Intent i = new Intent(getActivity(),
										TwoActivity.class);
								info1 = info.get(position);
								i.putExtra("info1", info1);
								startActivity(i);
								ad.notifyDataSetChanged();
							}
						});
					}
				});

			}

		} catch (ClientProtocolException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

	// 自定义适配器
	class Myad extends BaseAdapter {

		@Override
		public int getCount() {
			// TODO Auto-generated method stub
			return info.size();
		}

		@Override
		public Object getItem(int position) {
			// TODO Auto-generated method stub
			return null;
		}

		@Override
		public long getItemId(int position) {
			// TODO Auto-generated method stub
			return 0;
		}

		@Override
		public View getView(int position, View convertView, ViewGroup parent) {
			Group p;
			if (convertView == null) {
				p = new Group();
				// 获得视图
				convertView = View.inflate(getActivity(), R.layout.item, null);
				// 获得控件
				p.tv1 = (TextView) convertView.findViewById(R.id.t1);
				p.tv2 = (TextView) convertView.findViewById(R.id.t2);
				p.img = (SmartImageView) convertView
						.findViewById(R.id.imageView);
				convertView.setTag(p);
			} else {
				p = (Group) convertView.getTag();
			}
			p.tv1.setText(info.get(position).title);
			p.tv2.setText(info.get(position).intro);
			p.img.setImageUrl(info.get(position).pic);
			return convertView;
		}

	}

	class Group {
		TextView tv1;
		TextView tv2;
		SmartImageView img;
	}

}


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值