您的位置:首页 > 理论基础 > 计算机网络

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

2016-05-14 11:31 597 查看
<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;
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: