//主布局
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context="com.example.a1.zhouk2.MainActivity"> <LinearLayout android:orientation="horizontal" android:layout_width="match_parent" android:layout_height="wrap_content"> <TextView android:id="@+id/one" android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" android:gravity="center" android:textSize="30sp" android:text="页面一" /> <TextView android:id="@+id/two" android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" android:gravity="center" android:textSize="30sp" android:text="页面二" /> </LinearLayout> <FrameLayout android:id="@+id/content" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1" tools:ignore="Suspicious0dp"></FrameLayout> </LinearLayout>
//主ACTIIVTY
public class MainActivity extends AppCompatActivity implements View.OnClickListener{ private FrameLayout conntent; private Fragment01 fragment01; private Fragment02 fragment02; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initViews(); } private void initViews() { TextView one=findViewById(R.id.one); TextView two=findViewById(R.id.two); conntent=findViewById(R.id.content); fragment01=new Fragment01(); fragment02=new Fragment02(); one.setOnClickListener(this); two.setOnClickListener(this); FragmentManager fragmentManager=getSupportFragmentManager(); FragmentTransaction transaction=fragmentManager.beginTransaction(); transaction.replace(R.id.content,fragment01); transaction.commit(); } @Override public void onClick(View v) { switch (v.getId()){ case R.id.one: FragmentManager fm=getSupportFragmentManager(); FragmentTransaction transaction=fm.beginTransaction(); transaction.replace(R.id.content,fragment01); transaction.commit(); break; case R.id.two: FragmentManager fm1=getSupportFragmentManager(); FragmentTransaction transaction1=fm1.beginTransaction(); transaction1.replace(R.id.content,fragment02); transaction1.commit(); break; } } }
//Fragment01
public class Fragment01 extends Fragment{ public static String url="http://api.iclient.ifeng.com/ClientNews?id=JS83,FOCUSJS83&action=defalult"; private static final int CODE_SUCCESS=1; private ListView listView; private View view; @SuppressLint("HandlerLeak") private Handler handler=new Handler(){ @Override public void handleMessage(Message msg) { switch (msg.what){ case CODE_SUCCESS: Gson gson=new Gson(); LinkedList<UserBean> userBeans=gson.fromJson((String)msg.obj,new TypeToken<LinkedList<UserBean>>(){}.getType()); listView.setAdapter(new ListAdapter(getActivity(),userBeans.get(0).getItem())); break; } } }; public Fragment01(){ } @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { view=inflater.inflate(R.layout.fragment01_layout,null); listView=view.findViewById(R.id.one_listview); return view; } @Override public void onActivityCreated(@Nullable Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); initDatas(); } //获取网络数据 private void initDatas() { //用县程实现 new Thread(){ @Override public void run() { //super.run(); try { //获取网址 URL u=new URL(url); //开启连接 HttpURLConnection connection= (HttpURLConnection) u.openConnection(); //设置连接时间 connection.setConnectTimeout(5000); //r如果想响应成功 if (connection.getResponseCode()==200){ //写入流里 String result = inputStream2String(connection.getInputStream()); Message obtain = Message.obtain(); obtain.what = CODE_SUCCESS; obtain.obj = result; handler.sendMessage(obtain); } } catch (Exception e) { e.printStackTrace(); } } }.start(); } private String inputStream2String(InputStream inputStream) throws IOException { ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); int len = -1; byte[] bytes = new byte[1024]; while ((len = inputStream.read(bytes)) != -1) { outputStream.write(bytes, 0, len); } return new String(outputStream.toByteArray()); } }
//Fragment02
public class Fragment02 extends Fragment{ public static String two_url="http://120.27.23.105/user/getDefaultAddr?uid=71"; private TextView tname; private TextView taddress; private View view; public Fragment02(){ } @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { view=inflater.inflate(R.layout.fragment02_layout,null); tname=view.findViewById(R.id.t_name); taddress=view.findViewById(R.id.t_address); return view; } @Override public void onActivityCreated(@Nullable Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); initDatas(); } private void initDatas() { new LoderUserInfoTask().execute(two_url); } class LoderUserInfoTask extends AsyncTask<String,Void,NewsBean>{ @Override protected NewsBean doInBackground(String... strings) { HttpClient client=new DefaultHttpClient(); HttpGet get=new HttpGet(strings[0]); try { HttpResponse response=client.execute(get); if (response.getStatusLine().getStatusCode()==200){ String json= EntityUtils.toString(response.getEntity()); Gson gson=new Gson(); return gson.fromJson(json,NewsBean.class); } } catch (IOException e) { e.printStackTrace(); } return null; } @Override protected void onPostExecute(NewsBean newsBean) { super.onPostExecute(newsBean); tname.setText("姓名:"+newsBean.getData().getName()); taddress.setText("地址:"+newsBean.getData().getAddr()); } } } //列表适配器
public class ListAdapter extends BaseAdapter{ private Context context; private List<UserBean.ItemBean>list; public ListAdapter(Context context, List<UserBean.ItemBean> list) { this.context = context; this.list = list; } @Override public int getCount() { return list== null ? 0 : list.size(); } @Override public Object getItem(int position) { return null; } @Override public long getItemId(int position) { return 0; } @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder holder; if (convertView==null){ convertView=View.inflate(context,R.layout.item_layout,null); holder=new ViewHolder(); holder.timage=convertView.findViewById(R.id.t_image); holder.titles=convertView.findViewById(R.id.t_title); holder.tshijian=convertView.findViewById(R.id.t_time); convertView.setTag(holder); }else{ holder= (ViewHolder) convertView.getTag(); } holder.titles.setText(list.get(position).getTitle()); String comment; if (TextUtils.isEmpty(list.get(position).getSource())){ comment=list.get(position).getComments()+"评论"; }else{ comment=list.get(position).getSource()+"\t\t"+list.get(position).getComments()+"评论"; } holder.tshijian.setText(comment); String imageUrl=list.get(position).getThumbnail(); if (!TextUtils.isEmpty(imageUrl)){ Picasso.get().load(list.get(position).getThumbnail()).into(holder.timage); } return convertView; } class ViewHolder{ ImageView timage; TextView titles; TextView tshijian; } }