判断网络,数据库,Drawlayout

话不多说,直接看代码
首先加权限

<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/draw"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">
        <android.support.v4.view.ViewPager
            android:id="@+id/pager"
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="9"></android.support.v4.view.ViewPager>
        <RadioGroup
            android:id="@+id/radio"
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="1"
            android:orientation="horizontal"
            >

            <RadioButton
                android:id="@+id/btn01"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:button="@null"
                android:text="关注"
                android:gravity="center"
                android:checked="true"
                android:background="@drawable/select"/>
            <RadioButton
                android:id="@+id/btn02"
                android:gravity="center"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:button="@null"
                android:text="消息"
                android:background="@drawable/select"/>
            <RadioButton
                android:id="@+id/btn03"
                android:gravity="center"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:button="@null"
                android:text="我的"
                android:background="@drawable/select"/>
        </RadioGroup>
    </LinearLayout>
    <fragment
        class="bwie.com.yuekao.fragment.Fragmentce"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        ></fragment>
</android.support.v4.widget.DrawerLayout>

之后是MainActvitiy


import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.ActionBar;
import android.support.v7.app.ActionBarDrawerToggle;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.MenuItem;
import android.view.View;
import android.widget.RadioGroup;

import bwie.com.yuekao.fragment.Fragement03;
import bwie.com.yuekao.fragment.Fragment01;
import bwie.com.yuekao.fragment.Fragment02;

public class MainActivity extends AppCompatActivity {
    private ViewPager viewpager;
    private RadioGroup group;
    private DrawerLayout draw;
    private ActionBarDrawerToggle toggle;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        draw = findViewById(R.id.draw);
        viewpager = findViewById(R.id.pager);
        group = findViewById(R.id.radio);
        draw.setDrawerLockMode(DrawerLayout.LOCK_MODE_UNDEFINED);
        initad();
        FragmentManager man = getSupportFragmentManager();
        viewpager.setAdapter(new MyPageAdpter(man));
        group.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(RadioGroup radioGroup, int i) {
                switch (i){
                    case R.id.btn01:
                        viewpager.setCurrentItem(0);
                        break;
                    case R.id.btn02:
                        viewpager.setCurrentItem(1);
                        break;
                    case R.id.btn03:
                        viewpager.setCurrentItem(2);
                        break;
                }
            }
        });
        viewpager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
            @Override
            public void onPageScrolled(int i, float v, int i1) {

            }

            @Override
            public void onPageSelected(int i) {
                switch (i){
                    case 0:
                        group.check(R.id.btn01);
                        break;
                    case 1:
                        group.check(R.id.btn02);
                        break;
                    case 2:
                        group.check(R.id.btn03);
                        break;

                }
            }

            @Override
            public void onPageScrollStateChanged(int i) {

            }
        });
    }

    class MyPageAdpter extends FragmentPagerAdapter {

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

        @Override
        public Fragment getItem(int i) {
            switch (i){
                case 0:
                    Fragment01 fr01 = new Fragment01();
                    return fr01;
                case 1:
                    Fragment02 fr02 = new Fragment02();
                    return fr02;
                case 2:
                    Fragement03 fr03 = new Fragement03();
                    return fr03;

            }
            return null;
        }

        @Override
        public int getCount() {
            return 3;
        }
    }
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        if (toggle.onOptionsItemSelected(item)){
            return true;
        }
        return super.onOptionsItemSelected(item);
    }

    private void initad() {
        ActionBar actionBar = getSupportActionBar();
        //设置一个默认的照片
        actionBar.setDisplayHomeAsUpEnabled(true);
        toggle = new ActionBarDrawerToggle(this, draw, R.string.open, R.string.close);
        toggle.syncState();
        draw.addDrawerListener(toggle);
    }
}

之后是工具类


import android.os.AsyncTask;

import com.google.common.io.CharStreams;

import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;

public class Httpurl {
    private HttpListener httpListener;

    public interface HttpListener {
        void success(String date);
    }

    public void setHttpListener(HttpListener httpListener) {
        this.httpListener = httpListener;
    }
    public Httpurl getHttpurl(String url){
            new getRuqest(){
            }.execute(url);
            return this;
    }
    class getRuqest extends AsyncTask<String,Void,String>{
        private String read=null;
        @Override
        protected String doInBackground(String... strings) {
            try {
                URL url1 = new URL(strings[0]);
                HttpURLConnection connection = (HttpURLConnection) url1.openConnection();
                connection.setRequestMethod("GET");
                connection.setConnectTimeout(5000);
                connection.setReadTimeout(5000);
                int responseCode = connection.getResponseCode();
                if (responseCode==200){
                    InputStream stream = connection.getInputStream();
                    read = CharStreams.toString(new InputStreamReader(stream));
                }
                return read;
            } catch (MalformedURLException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
            return null;
        }

        @Override
        protected void onPostExecute(String s) {
            if (s!=null){
                httpListener.success(s);
            }
        }
    }
}
另一个网络请求工具类
package bwie.com.yuekao.util;

import com.google.common.io.CharStreams;

import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;

public class HttpUrlConnection {
    public HttpUrlConnection() {
    }
    public String getrequest(String url){
        String ss=null;
        try {
            URL url1 = new URL(url);
            HttpURLConnection connection = (HttpURLConnection) url1.openConnection();
            connection.setRequestMethod("GET");
            connection.setConnectTimeout(5000);
            connection.setReadTimeout(5000);
            int responseCode = connection.getResponseCode();
            if (responseCode==200){
                InputStream stream = connection.getInputStream();
                String s = CharStreams.toString(new InputStreamReader(stream));
                ss=s;
            }
        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return ss;
    }
}
紧接着是一个有没有网络的判断

package bwie.com.yuekao.util;

import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;

public class WLoupd {
    public static boolean isNewWL(Context context){
        ConnectivityManager manager = (ConnectivityManager) context.getApplicationContext().getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo info = manager.getActiveNetworkInfo();
        if (info==null){
            return false;
        }else {
            return true;
        }
    }
}

不过配置的类这里就不说明了,
然后是网络请求和数据库



import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.v4.app.Fragment;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

import com.google.gson.Gson;

import java.util.ArrayList;
import java.util.List;

import bwie.com.yuekao.R;
import bwie.com.yuekao.adapter.XAdapter;
import bwie.com.yuekao.bean.Lei;
import bwie.com.yuekao.bean.XinwBean;
import bwie.com.yuekao.sql.Dao;
import bwie.com.yuekao.util.HttpUrlConnection;
import bwie.com.yuekao.util.WLoupd;
import me.maxwin.view.XListView;

/**
 * A simple {@link Fragment} subclass.
 */
public class Fragment01 extends Fragment {
    private XListView xlist;
    private int page=1;
    private XAdapter xAdapter;
    private final static int ONE=1;
    private Handler handler=new Handler(){
        @Override
        public void handleMessage(Message msg) {
                List<XinwBean.DataBean> list= (List<XinwBean.DataBean>) msg.obj;
            if (msg.what==ONE){
                xAdapter.setData(list);
            }else {
                xAdapter.addData(list);
            }

            load();
        }
    };
    private Dao dao;

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        View view = inflater.inflate(R.layout.fragment01, container, false);
        xlist = view.findViewById(R.id.xlist);
        xAdapter = new XAdapter(getLayoutInflater());
        dao = new Dao(getContext());
        if (WLoupd.isNewWL(getContext())){
            Log.e("李sss", "有网络");
            initView(view);
        }else {
            List<XinwBean.DataBean> select = dao.select();
            Log.e("李sss", select.size()+"");
            xAdapter.setData(select);
            xlist.setAdapter(xAdapter);
        }

        return view;
    }
    private void initView(View view) { ;
        xlist.setPullLoadEnable(true);
        xlist.setXListViewListener(new XListView.IXListViewListener() {
            @Override
            public void onRefresh() {
                page++;
                initData();
            }

            @Override
            public void onLoadMore() {
                page++;
                initData();
            }
        });
        xlist.setAdapter(xAdapter);
        initData();
    }
    private String url="http://www.xieast.com/api/news/news.php?page=1http://www.xieast.com/api/news/news.php?page=";
    private void initData() {
        final String req=url+page;
        new Thread(new Runnable() {

            private List<XinwBean.DataBean> data;

            @Override
            public void run() {
                String getrequest = new HttpUrlConnection().getrequest(req);
                XinwBean xinwBean = new Gson().fromJson(getrequest, XinwBean.class);
                List<XinwBean.DataBean> data = xinwBean.getData();
                List<XinwBean.DataBean> select = dao.select();
                for (int i = 0; i <data.size() ; i++) {
                   //if (xinwBean.getData().get(i).getAuthor_name().equals(select.get(i).getAuthor_name())){
                     //   break;
                   // }else {
                        Lei lei = new Lei();
                        lei.setAuthor_name(xinwBean.getData().get(i).getAuthor_name());
                        lei.setTitle(xinwBean.getData().get(i).getTitle());
                        lei.setThumbnail_pic_s(xinwBean.getData().get(i).getThumbnail_pic_s());
                        lei.setThumbnail_pic_s02(xinwBean.getData().get(i).getThumbnail_pic_s02());
                        lei.setThumbnail_pic_s03(xinwBean.getData().get(i).getThumbnail_pic_s03());
                        dao.insert(lei);
                    //}
                }
                if (page==1){
                handler.sendMessage(handler.obtainMessage(ONE,xinwBean.getData()));

                }else {
                handler.sendMessage(handler.obtainMessage(2,xinwBean.getData()));

                }

            }
        }).start();

    }
    void load(){
        page++;
        xlist.stopLoadMore();
        xlist.stopRefresh();
    }

}

后面是数据库
先创建数据库


import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

public class Mhelper extends SQLiteOpenHelper {
    public Mhelper(Context context) {
        super(context, "Pin.db", null, 1);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        db.execSQL("create table web(t_name text,t_title text,t_image text,t_image1 text,t_image2 text)");
    }

    @Override
    public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {

    }
}
然后是对数据库的增删该查
package bwie.com.yuekao.sql;

import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.util.Log;

import java.util.ArrayList;
import java.util.List;

import bwie.com.yuekao.bean.Lei;
import bwie.com.yuekao.bean.XinwBean;

public class Dao {
	SQLiteDatabase re;
	public Dao(Context context){
		Mhelper mhelper = new Mhelper(context);
		re = mhelper.getReadableDatabase();
	}
	//t_name text,t_title text,t_image text,t_image1 text,t_image2 text
	//添加方法
	public void insert(Lei data) {
		// TODO Auto-generated method stub
			re.execSQL("insert into web(t_name,t_title,t_image,t_image1,t_image2) values(?,?,?,?,?)",new Object[]{data.getAuthor_name()
					,data.getTitle()
					,data.getThumbnail_pic_s()
					,data.getThumbnail_pic_s02()
					,data.getThumbnail_pic_s03()});
        //Log.e("李sss", "进来了吗");
	}
	//查询方法
	public List<XinwBean.DataBean> select() {
		// TODO Auto-generated method stub
        List<XinwBean.DataBean> list=new ArrayList<>();
		Cursor cursor = re.rawQuery("select * from web", null);
		while (cursor.moveToNext()) {
			String name = cursor.getString(cursor.getColumnIndex("t_name"));
			String title = cursor.getString(cursor.getColumnIndex("t_title"));
			String image = cursor.getString(cursor.getColumnIndex("t_image"));
			String image1 = cursor.getString(cursor.getColumnIndex("t_image1"));
			String image2 = cursor.getString(cursor.getColumnIndex("t_image2"));
            XinwBean.DataBean dataBeans = new XinwBean.DataBean(name,title,image,image1,image2);
            list.add(dataBeans);
		}
		return list;
	}
	//修改方法
	/*public void update(String trim, String wzh) {
		// TODO Auto-generated method stub
		re.execSQL("update web set t_address=? where t_name=?",new Object[]{wzh,trim});
	}*/
}


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

import com.nostra13.universalimageloader.core.ImageLoader;

import java.util.ArrayList;
import java.util.List;
import bwie.com.yuekao.R;
import bwie.com.yuekao.bean.XinwBean;
import bwie.com.yuekao.imageloader.ImageLoaderconfigs;

public class XAdapter extends BaseAdapter {
    private List<XinwBean.DataBean> list;
    private LayoutInflater inflater;

    public XAdapter(LayoutInflater inflater) {
        this.inflater = inflater;
        list=new ArrayList<XinwBean.DataBean>();
    }

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

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

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

    @Override
    public View getView(int i, View view, ViewGroup viewGroup) {
        if (getItemViewType(i)==ONE){
            ViewHolder vh;
            if (view==null){
                view=inflater.inflate(R.layout.item,viewGroup,false);
                vh=new ViewHolder(view);
            }else {
                vh= (ViewHolder) view.getTag();
            }
            vh.bindData(getItem(i));
        }else {
            ViewHolderImage vh;
            if (view==null){
                view=inflater.inflate(R.layout.item1,viewGroup,false);
                vh=new ViewHolderImage(view);
            }else {
                vh= (ViewHolderImage) view.getTag();
            }
            vh.bindData(getItem(i));
        }
        return view;
    }
    private final static int ONE=1;
    private final static int ZERO=0;
    @Override
    public int getItemViewType(int position) {
        XinwBean.DataBean item = getItem(position);
        if (item.getThumbnail_pic_s02()==null){
            return ONE;
        }else {
            return ZERO;
        }
    }

    @Override
    public int getViewTypeCount() {
        return 2;
    }

    public void addData(List<XinwBean.DataBean> resultBeans) {
        if (resultBeans!=null){
            list.addAll(resultBeans);
        }
        notifyDataSetChanged();
    }

    public void setData(List<XinwBean.DataBean> resultBeans) {
        list.clear();
        if (resultBeans!=null){
            list.addAll(resultBeans);
        }
        notifyDataSetChanged();
    }

    class ViewHolder{
        ImageView image;
        TextView name,title;

        public ViewHolder(View view) {
            image = view.findViewById(R.id.image);
            name=view.findViewById(R.id.name);
            title=view.findViewById(R.id.title);
            view.setTag(this);
        }
        public void bindData(XinwBean.DataBean syb){
            name.setText(syb.getAuthor_name());
            title.setText(syb.getTitle());
            ImageLoader.getInstance().displayImage(syb.getThumbnail_pic_s(),image,ImageLoaderconfigs.getDisplayImageOptions(image.getContext()));
        }
    }
    class ViewHolderImage{
        ImageView image,image1,image2;
        TextView name;
        public ViewHolderImage(View view) {
            image = view.findViewById(R.id.i_image);
            image1=view.findViewById(R.id.i_image1);
            image2=view.findViewById(R.id.i_image2);
            name=view.findViewById(R.id.i_name);
            view.setTag(this);
        }
        public void bindData(XinwBean.DataBean syb){
            name.setText(syb.getTitle());
            ImageLoader.getInstance().displayImage(syb.getThumbnail_pic_s(),image,ImageLoaderconfigs.getDisplayImageOptions(image.getContext()));
            ImageLoader.getInstance().displayImage(syb.getThumbnail_pic_s02(),image1,ImageLoaderconfigs.getDisplayImageOptions(image1.getContext()));
            ImageLoader.getInstance().displayImage(syb.getThumbnail_pic_s03(),image2,ImageLoaderconfigs.getDisplayImageOptions(image2.getContext()));
        }
    }
}







package bwie.com.yuekao.imageloader;

import android.content.Context;
import android.graphics.Bitmap;

import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;
import com.nostra13.universalimageloader.core.assist.ImageScaleType;
import bwie.com.yuekao.R;

public class ImageLoaderconfigs {
    public static ImageLoaderConfiguration getImageLoaderConfiguration(Context context){
        ImageLoaderConfiguration build = new ImageLoaderConfiguration.Builder(context)
                .memoryCacheSizePercentage(13)
                .diskCacheSize(50*1024*1024)
                .build();
        return build;
    }
    public static DisplayImageOptions getDisplayImageOptions(Context context){
        DisplayImageOptions build = new DisplayImageOptions.Builder()
                .cacheInMemory(true)
                .cacheOnDisk(true)
                .showImageOnFail(R.mipmap.ic_launcher)
                .showImageForEmptyUri(R.mipmap.ic_launcher)
                .imageScaleType(ImageScaleType.EXACTLY)
                .bitmapConfig(Bitmap.Config.RGB_565)
                .build();
        return build;
    }
}

不过这个数据库的添加是有点无脑,准确的来说是有一些bug会一直添加下去,在哪里加一个判断就行。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值