TestThree

该博客主要围绕App开发展开,涉及fragment主页面,包含数据库操作、DAO层代码。还给出网络请求的HTTP代码,用于异步请求及网络判断。此外,有TAblayout、QQ页面等的代码,以及图片加载配置选项,如内存和磁盘缓存设置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先是fragment主页面的东西数据库+网络判断
public class F1 extends Fragment {

private PullToRefreshListView listView;
private String str="http://www.xieast.com/api/news/news.php?page=1";
private List<JsonBean.DataBean> data;
private Dao dao;
private ArrayList<JsonBean.DataBean> arrayList;
private boolean b;
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
    View view = View.inflate(getActivity(),R.layout.f1,null);

    listView = view.findViewById(R.id.pull_to_refresh_listview);
    dao = new Dao(getActivity());

    if (b){
       HttpUtils.httpAsyncTask(str, new HttpUtils.CallBackString() {
           @Override
           public void getData(String s) {
               Gson gson = new Gson();
               JsonBean bean = gson.fromJson(s, JsonBean.class);
               data = bean.getData();
               MyAdapter adapter = new MyAdapter(data,getActivity());
               listView.setAdapter(adapter);
               listView.onRefreshComplete();
               if (dao.query("f", null, null, null, null, null, null).moveToFirst()){

               }else {
                   for (int i=0;i<=data.size();i++){
                       ContentValues values = new ContentValues();
                       values.put("title",data.get(i).getTitle());
                       dao.insert("f",null,values);
                   }
               }
           }
       });
    }else {
        Toast.makeText(getActivity(), "无网络连接,请检查网络设置", Toast.LENGTH_LONG).show();
        Cursor query = dao.query("f", null, null, null, null, null, null);
        arrayList = new ArrayList<>();
        if (query.moveToFirst()){
            while (query.moveToNext()){
                String title = query.getString(query.getColumnIndex("title"));
                arrayList.add(new JsonBean.DataBean(title));
            }
            listView.setAdapter(new MyAdapter(arrayList, getActivity()));
            listView.onRefreshComplete();
        }else {
            Toast.makeText(getActivity(),"无数据",Toast.LENGTH_LONG).show();
        }
    }


    listView.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() {
        @Override
        public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) {
            listView.setMode(PullToRefreshListView.Mode.BOTH);
            b = HttpUtils.isNetwork(getActivity());
            if (b){
                HttpUtils.httpAsyncTask(str, new HttpUtils.CallBackString() {
                    @Override
                    public void getData(String s) {
                        Gson gson = new Gson();
                        JsonBean bean = gson.fromJson(s, JsonBean.class);
                        data = bean.getData();
                        MyAdapter adapter = new MyAdapter(data,getActivity());
                        listView.setAdapter(adapter);
                        listView.onRefreshComplete();
                    }
                });
            }else {
                Toast.makeText(getActivity(), "无网络连接,请检查网络设置", Toast.LENGTH_LONG).show();
                Cursor query = dao.query("f", null, null, null, null, null, null);
                arrayList = new ArrayList<>();
                if (query.moveToFirst()){
                    while (query.moveToNext()){
                        String title = query.getString(query.getColumnIndex("title"));
                        arrayList.add(new JsonBean.DataBean(title));
                    }
                    listView.setAdapter(new MyAdapter(arrayList, getActivity()));
                    listView.onRefreshComplete();
                }else {
                    Toast.makeText(getActivity(),"无数据",Toast.LENGTH_LONG).show();
                }
            }
        }

        @Override
        public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) {
            listView.setMode(PullToRefreshListView.Mode.BOTH);
            boolean b = HttpUtils.isNetwork(getActivity());
            if (b){
                HttpUtils.httpAsyncTask(str, new HttpUtils.CallBackString() {
                    @Override
                    public void getData(String s) {
                        Gson gson = new Gson();
                        JsonBean bean = gson.fromJson(s, JsonBean.class);
                        data = bean.getData();
                        MyAdapter adapter = new MyAdapter(data,getActivity());
                        listView.setAdapter(adapter);
                        listView.onRefreshComplete();
                    }
                });
            }else {
                Toast.makeText(getActivity(), "无网络连接,请检查网络设置", Toast.LENGTH_LONG).show();
                Cursor query = dao.query("f", null, null, null, null, null, null);
                arrayList = new ArrayList<>();
                if (query.moveToFirst()){
                    while (query.moveToNext()){
                        String title = query.getString(query.getColumnIndex("title"));
                        arrayList.add(new JsonBean.DataBean(title));
                    }
                    listView.setAdapter(new MyAdapter(arrayList, getActivity()));
                    listView.onRefreshComplete();
                }else {
                    Toast.makeText(getActivity(),"无数据",Toast.LENGTH_LONG).show();
                }
            }
        }
    });
    return view;

}

}

下面是数据库
在这里插入图片描述
接着是DAO层
在这里插入图片描述
下面是app的代码不要忘记写权限,导入imageloader依赖
在这里插入图片描述
下面是网络请求的代码HTTP

public class HttpUtils {
//异步请求接口
public static void httpAsyncTask(String str, final CallBackString backString){
new AsyncTask<String,Integer,String>(){

        @Override
        protected String doInBackground(String... strings) {
            return httpget(strings[0]);
        }

        @Override
        protected void onPostExecute(String s) {
            super.onPostExecute(s);
            backString.getData(s);
        }
    }.execute(str);
}

public interface CallBackString{
    void getData(String s);
}
//判断有没有网络

public static boolean isNetwork(Context context){
if (context!=null){
ConnectivityManager manager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo info = manager.getActiveNetworkInfo();
if (info!=null){
return info.isAvailable();
}
}
return false;
}

public static String httpget(String strUrl){
try {
URL url = new URL(strUrl);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod(“GET”);
connection.setConnectTimeout(5000);
connection.setReadTimeout(5000);
InputStream stream = connection.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(stream));

     StringBuilder builder = new StringBuilder();
     String str="";
     while ((str=reader.readLine())!=null){
         builder.append(str);
     }
     connection.disconnect();
     return builder.toString();
 } catch (Exception e) {
     e.printStackTrace();
 }
 return null;

}
}

下面是写TAblayout的代码
在这里插入图片描述
下面最主要的QQ页面
在这里插入图片描述
下面是xml中QQ页面的代码
在这里插入图片描述
还有一个tablayout的代码+viewpager
在这里插入图片描述

多条目的时候可以写
DisplayImageOptions options = new DisplayImageOptions.Builder()
.cacheInMemory(true)//让图片进行内存缓存
.cacheOnDisk(true)//让图片进行sdcard缓存
/.showImageForEmptyUri(R.mipmap.ic_empty)//图片地址有误
.showImageOnFail(R.mipmap.ic_error)//当图片加载出现错误的时候显示的图片
.showImageOnLoading(R.mipmap.loading)//图片正在加载的时候显示的图片
/
.build();
//参数1:加载的图片地址
//参数2:将图片设置到那个图片控件上面
//参数3:加载图片配置选项,意思是指明对这张图片的是否进行缓存(内存、sdcard)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值