一。MainActivity
public class MainActivity extends FragmentActivity implements View.OnClickListener{ private TextView t_page1,t_page2; private FrameLayout frameLayout; private Fragment01 fragment01; private Fragment02 fragment02; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //初始化视图 initview(); } private void initview() { t_page1=findViewById(R.id.page1); t_page2=findViewById(R.id.page2); frameLayout=findViewById(R.id.framelayout); t_page1.setOnClickListener(this); t_page2.setOnClickListener(this); //创建Fragment 容器 fragment01 = new Fragment01(); fragment02 = new Fragment02(); FragmentManager fragmentManager = getSupportFragmentManager(); FragmentTransaction transaction = fragmentManager.beginTransaction(); transaction.replace(R.id.framelayout,fragment01); transaction.commit(); } @Override public void onClick(View v) { switch (v.getId()){ case R.id.page1: FragmentManager fragmentManager1 = getSupportFragmentManager(); FragmentTransaction transaction1 = fragmentManager1.beginTransaction(); transaction1.replace(R.id.framelayout,fragment01); transaction1.commit(); break; case R.id.page2: FragmentManager fragmentManager2 = getSupportFragmentManager(); FragmentTransaction transaction2 = fragmentManager2.beginTransaction(); transaction2.replace(R.id.framelayout,fragment02); transaction2.commit(); break; } }
二。Fragment01
private String page1_url="http://api.iclient.ifeng.com/ClientNews?id=JS83,FOCUSJS83&action=defalult"; private static final String TAG = "Fragment01"; private ListView listview; private MyHandler myHandler=new MyHandler(); @Nullable @Override public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment01, container, false); listview=view.findViewById(R.id.listview); return view; } @Override public void onActivityCreated(@Nullable Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); new Thread(){ @Override public void run() { try { URL u =new URL(page1_url); HttpURLConnection connection= (HttpURLConnection) u.openConnection(); connection.setConnectTimeout(5000); int code = connection.getResponseCode(); if(code==200){ InputStream inputStream = connection.getInputStream(); String json = input(inputStream); Log.d(TAG, "run: "+json); Message message=myHandler.obtainMessage(); message.what=0; message.obj=json; myHandler.sendMessage(message); } } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }.start(); } public String input(InputStream inputStream) throws IOException { int len=0; byte[] byt=new byte[1024]; StringBuffer stringBuffer=new StringBuffer(); while ((len=inputStream.read(byt))!=-1){ String s= new String(byt,0,len); stringBuffer.append(s); } return stringBuffer.toString(); } class MyHandler extends Handler{ @Override public void handleMessage(Message msg) { super.handleMessage(msg); switch (msg.what){ case 0: //如果成功获取json 进行解析 String json= (String) msg.obj; //获取gson Gson gson=new Gson(); Type listtype = new TypeToken<LinkedList<Page1>>(){}.getType(); LinkedList<Page1> list= gson.fromJson(json, listtype); List<Page1.ItemBean> item = list.get(0).getItem(); //创建适配器进行显示 MyBase base=new MyBase(getActivity(),item); listview.setAdapter(base); break; case 1: break; } }
三,Fragment02
public class Fragment02 extends Fragment{ private String page2_url="http://120.27.23.105/user/getDefaultAddr?uid=71"; private static final String TAG = "Fragment02"; private TextView text_name,text_add; @Nullable @Override public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment02, container, false); text_name =view.findViewById(R.id.fragment02_name); text_add=view.findViewById(R.id.fragment02_add); return view; } @Override public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); //task请求网络 new MyTask().execute(page2_url); } class MyTask extends AsyncTask<String,Void,String>{ @Override protected String doInBackground(String... strings) { //取出第一个参数 接口地址 String url=strings[0]; //创建HttpClient HttpClient client=new DefaultHttpClient(); //创建get请求方式 HttpGet get=new HttpGet(url); try { HttpResponse response = client.execute(get); StatusLine statusLine = response.getStatusLine(); int code = statusLine.getStatusCode(); if(code==200){ HttpEntity entity = response.getEntity(); InputStream inputStream = entity.getContent(); //将流转成String 类型的 String json = input(inputStream); Log.d(TAG, "doInBackground: "+json); return json; } } catch (IOException e) { e.printStackTrace(); } return null; } @Override protected void onPostExecute(String s) { super.onPostExecute(s); Gson gson=new Gson(); Page2 page2 = gson.fromJson(s, Page2.class); //赋值 text_name.setText(page2.getData().getName()); text_add.setText(page2.getData().getAddr()); } } public String input (InputStream inputStream) throws IOException { int len=0; byte[] byt=new byte[1024]; StringBuffer stringBuffer=new StringBuffer(); while((len=inputStream.read(byt))!=-1){ String s=new String(byt,0,len); stringBuffer.append(s); } return stringBuffer.toString(); }