首次作品

第一步首页布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    xmlns:android="http://schemas.android.com/apk/res/android" >
    <android.support.v4.view.ViewPager
        android:id="@+id/vp"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="9"/>
    <RadioGroup
        android:id="@+id/radio_group"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:orientation="horizontal">

        <RadioButton
            android:id="@+id/rb1"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:button="@null"
            android:gravity="center"
            android:background="@drawable/bgcolor"
            android:checked="true"
            android:text="Http"
            android:textSize="20sp" />
        <RadioButton
            android:id="@+id/rb2"
            android:layout_width="0dp"
            android:layout_weight="1"
            android:layout_height="match_parent"
            android:text="Clie"
            android:button="@null"
            android:textSize="20sp"
            android:background="@drawable/bgcolor"
            android:gravity="center"/>
    </RadioGroup>
</LinearLayout>

第二步初始化控件以及其它操作:

package com.example.two;

import android.app.FragmentManager;
import android.support.v4.app.Fragment;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.RadioGroup;

import com.example.two.Adapter.FragmentPagerAdapter;
import com.example.two.Fragment.ClieFragment;
import com.example.two.Fragment.HttpFragment;

import java.util.ArrayList;

public class MainActivity extends AppCompatActivity {

    private ViewPager vp;
    private RadioGroup radio_group;
    private HttpFragment httpFragment;
    private ClieFragment clieFragment;
    private FragmentManager manager;
    private ArrayList<Fragment> list;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        vp = findViewById(R.id.vp);
        radio_group = findViewById(R.id.radio_group);

        list = new ArrayList<>();

        list.add(new HttpFragment());
        list.add(new ClieFragment());

        FragmentPagerAdapter adapter = new FragmentPagerAdapter(getSupportFragmentManager(),list);
        vp.setAdapter(adapter);

        vp.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
            @Override
            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

            }

            @Override
            public void onPageSelected(int position) {
                radio_group.check(radio_group.getChildAt(position).getId());
            }

            @Override
            public void onPageScrollStateChanged(int state) {

            }
        });
        radio_group.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(RadioGroup radioGroup, int i) {
                switch (i){
                    case R.id.rb1:
                        vp.setCurrentItem(0);
                        break;
                    case R.id.rb2:
                        vp.setCurrentItem(1);
                        break;
                    default:
                        break;
                }
            }
        });
    }
}

第三步FragmentPagerAdapter:

package com.example.two.Adapter;

import android.content.Context;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;

import java.util.ArrayList;

public class FragmentPagerAdapter extends android.support.v4.app.FragmentPagerAdapter {

    private ArrayList<Fragment> list;

    public FragmentPagerAdapter(FragmentManager fm, ArrayList<Fragment> list) {
        super(fm);
        this.list = list;
    }

    public FragmentPagerAdapter(FragmentManager fm) {
        super(fm);
    }

    @Override
    public Fragment getItem(int position) {
        return list.get(position);
    }

    @Override
    public int getCount() {
        return list.size();
    }
}

第四步HttpFragment()操作:

package com.example.two.Fragment;

import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ListView;

import com.example.two.Adapter.HttpAdapter;
import com.example.two.Bean.newsBean;
import com.example.two.R;
import com.example.two.ShowActivity;
import com.google.gson.Gson;

import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.Date;
import java.util.List;

public class HttpFragment extends Fragment {

    private ListView list_h_view;
    private  String path = "http://www.xieast.com/api/news/news.php?page=1";
    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.http_layout, container, false);
        list_h_view = view.findViewById(R.id.list_h_view);
        return view;
    }

    @Override
    public void onActivityCreated(@Nullable Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
        jiexi(path);
    }

    private void jiexi(String path) {
        my my = new my();
        my.execute(path);
    }
    public  class  my extends AsyncTask<String ,Integer , String>{

        //耗时操作
        @Override
        protected String doInBackground(String... params) {
            String path = params[0];
            try {
                URL url = new URL(path);
                HttpURLConnection connection = (HttpURLConnection) url.openConnection();
                connection.setConnectTimeout(5000);
                connection.setReadTimeout(5000);
                connection.setRequestMethod("GET");
                if (connection.getResponseCode() == 200){
                    InputStream inputStream = connection.getInputStream();
                    ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
                    byte[] bytes = new byte[1024];
                    int leng = 0;
                    while ((leng = inputStream.read(bytes))!= -1){
                        outputStream.write(bytes,0,leng);
                    }

                    outputStream.close();
                    inputStream.close();

                    String s = outputStream.toString();
                    return  s;
                }
            } catch (Exception e) {


            }

            return null;
        }

        //更新ui
        @Override
        protected void onPostExecute(String s) {
            super.onPostExecute(s);
            Gson gson = new Gson();
            newsBean newsBean = gson.fromJson(s, newsBean.class);
            final List<com.example.two.Bean.newsBean.DataBean> data = newsBean.getData();
            HttpAdapter httpAdapter = new HttpAdapter(getActivity(), data);
            list_h_view.setAdapter(httpAdapter);

            list_h_view.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                @Override
                public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
                    Intent intent = new Intent(getActivity(),ShowActivity.class);
                    intent.putExtra("url",data.get(i).getUrl());
                    startActivity(intent);
                }
            });
        }
    }

}

创建HttpAdapter:

package com.example.two.Adapter;

import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;

import com.example.two.Bean.newsBean;
import com.example.two.R;

import java.util.List;

public class HttpAdapter extends BaseAdapter {
    private Context context;
    private List<com.example.two.Bean.newsBean.DataBean> list;

    public HttpAdapter(Context context, List<newsBean.DataBean> list) {
        this.context = context;
        this.list = list;
    }

    @Override
    public int getCount() {
        return list.size();
    }

    @Override
    public Object getItem(int i) {
        return list.get(i);
    }

    @Override
    public long getItemId(int i) {
        return i;
    }

    @Override
    public View getView(int i, View convertview, ViewGroup viewGroup) {
        ViewHolper holper = null;
        if (convertview == null){
            convertview = View.inflate(context,R.layout.text_layout, null);
            holper = new ViewHolper();
            holper.text_view = convertview.findViewById(R.id.tv);
            convertview.setTag(holper);
        }else{
            holper = (ViewHolper) convertview.getTag();
        }
        holper.text_view.setText(list.get(i).getTitle());
        return convertview;
    }
    class ViewHolper{
        TextView text_view;
    }
}

第四步Bean包:

第五步跳转页面:

package com.example.two;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.webkit.WebView;

public class ShowActivity extends AppCompatActivity {

    private WebView web;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_show);
        web = findViewById(R.id.web);

        Intent intent = getIntent();
        web.loadUrl(intent.getStringExtra("url"));
    }
}

第六步ClieFragment()操作:

package com.example.two.Fragment;

import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ListView;

import com.example.two.Adapter.HttpAdapter;
import com.example.two.Bean.newsBean;
import com.example.two.R;
import com.example.two.ShowActivity;
import com.google.gson.Gson;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.util.EntityUtils;

import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.List;

public class ClieFragment extends Fragment {

    private ListView list_c_view;
    private  String path = "http://www.xieast.com/api/news/news.php?page=1";
    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.clie_layout, container, false);
        list_c_view = view.findViewById(R.id.list_c_view);
        return view;
    }
    @Override
    public void onActivityCreated(@Nullable Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
        jiexi(path);
    }

    private void jiexi(String path) {
        my my = new my();
        my.execute(path);
    }
    public  class  my extends AsyncTask<String ,Integer , String> {

        //耗时操作
        @Override
        protected String doInBackground(String... params) {
            DefaultHttpClient client = new DefaultHttpClient();
            String path = params[0];
            HttpGet get = new HttpGet(path);
            try {
                HttpResponse response = client.execute(get);
                if (response.getStatusLine().getStatusCode() == 200){
                    HttpEntity entity = response.getEntity();
                    String s = EntityUtils.toString(entity);
                    return s;
                }

            } catch (Exception e) {
                e.printStackTrace();
            }
            return null;
        }

        //更新ui
        @Override
        protected void onPostExecute(String s) {
            super.onPostExecute(s);
            Gson gson = new Gson();
            newsBean newsBean = gson.fromJson(s, newsBean.class);
            final List<com.example.two.Bean.newsBean.DataBean> data = newsBean.getData();
            HttpAdapter httpAdapter = new HttpAdapter(getActivity(), data);
            list_c_view.setAdapter(httpAdapter);

            list_c_view.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                @Override
                public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
                    Intent intent = new Intent(getActivity(),ShowActivity.class);
                    intent.putExtra("url",data.get(i).getUrl());
                    startActivity(intent);
                }
            });
        }
    }
}

猜你喜欢

转载自blog.csdn.net/p_19971113/article/details/81434410
今日推荐