资讯月考

1.倒计时+band

public class HandlerActivity extends AppCompatActivity {

    private TextView textView;
    private int miao = 3;

    private Handler handler = new Handler(){
        @Override
        public void handleMessage(Message msg) {
            super.handleMessage(msg);

            if (miao==0){
                Intent intent = new Intent(HandlerActivity.this,MainActivity.class);
                startActivity(intent);
                finish();
            }
            else{
                textView.setText(miao+"秒");
                miao--;
                handler.sendEmptyMessageDelayed(0,1000);
            }
        }
    };
    private Banner banner;
    private ArrayList<String> data;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_handler);

        textView = findViewById(R.id.textView);

        banner = findViewById(R.id.banner);

        data = new ArrayList<String>();

        data.add("图片网址");

        data.add("图片网址");

        data.add("图片网址");

        data.add("图片网址");

        //设置图片加载器
        banner.setImageLoader(new ImageLoader() {
            @Override
            public void displayImage(Context context, Object path, ImageView imageView) {
                //初始化
                com.nostra13.universalimageloader.core.ImageLoader imageLoader =
                        com.nostra13.universalimageloader.core.ImageLoader.getInstance();
                imageLoader.displayImage((String) path,imageView);
            }
        });

        banner.setImages(data); //图片数据
        banner.isAutoPlay(true);//图片是否轮播,TRUE是
        banner.setDelayTime(1000);//图片切换时间
        banner.start();//开始轮播

        handler.sendEmptyMessage(0);
    }
}

2.倒计时+band布局

<RelativeLayout
    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"
    tools:context=".HandlerActivity"
    android:orientation="horizontal"
    >

    <TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_alignParentEnd="true"
        android:layout_marginTop="44dp"
        android:layout_marginEnd="55dp"
        android:text="3秒"
        android:textSize="30dp" />

    <com.youth.banner.Banner
        android:id="@+id/banner"
        android:layout_width="match_parent"
        android:layout_height="200dp"
        android:layout_alignParentStart="true"
        android:layout_centerVertical="true" />

</RelativeLayout>

3.QQ页面+侧滑+PullToRefreshListView

在这里插入代码片public class MainActivity extends FragmentActivity {

    private FrameLayout framelayout;
    private RadioGroup radioGroup;
    private Fragment1 fragment1;
    private Fragment2 fragment2;
    private Fragment3 fragment3;
    private FragmentManager fragmentManager;
    private FragmentTransaction transaction;

    private PullToRefreshListView pullList1;
    private Dao dao;
    String str = "http://172.17.8.100/movieApi/movie/v1/findReleaseMovieList?count=10&page=1";
    private List<JsonBean.ResultBean> data;
    private PullAdter adter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        framelayout = findViewById(R.id.framelayout);
        radioGroup = findViewById(R.id.radioGroup);

        fragmentManager = getSupportFragmentManager();
        transaction = fragmentManager.beginTransaction();

        fragment1 = new Fragment1();
        fragment2 = new Fragment2();
        fragment3 = new Fragment3();

        transaction.add(R.id.framelayout, fragment1);
        transaction.add(R.id.framelayout, fragment2);
        transaction.add(R.id.framelayout, fragment3);
        transaction.replace(R.id.framelayout, fragment1);
        transaction.commit();

        radioGroup.check(radioGroup.getChildAt(0).getId());

        radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(RadioGroup group, int checkedId) {

                FragmentTransaction transaction1 = fragmentManager.beginTransaction();

                switch (checkedId){
                   case R.id.radioButton0:
                       transaction1.replace(R.id.framelayout, fragment1);
                       break;
                    case R.id.radioButton1:
                        transaction1.replace(R.id.framelayout, fragment2);
                        break;
                    case R.id.radioButton2:
                        transaction1.replace(R.id.framelayout, fragment3);
                        break;
                }
                transaction1.commit();
            }
        });


        pullList1 = findViewById(R.id.pullList1);
        //PullToRefreshListView.Mode.BOTH,上下拉都可以
        pullList1.setMode(PullToRefreshListView.Mode.BOTH);
        //设置是否刷新的时候可以滑动
        pullList1.setScrollingWhileRefreshingEnabled(true);

        dao = new Dao(MainActivity.this);

        //判断有没有网络
        if (Http.isABoolean(MainActivity.this)){
            //如果有网就请求网络
            Http.httpAsynTask(str, new Http.BackCallString() {
                @Override
                public void getData(String s) {
                    gsonj(s);
                }
            });
        }
        else{
            //如果没有网络,就请求数据库中的数据
            Cursor query = dao.query("pers", null, null, null, null, null, null);

            data = new ArrayList<JsonBean.ResultBean>();

            if (query.moveToFirst()){
                do{
                    String title = query.getString(query.getColumnIndex("title"));
                    String pice = query.getString(query.getColumnIndex("pice"));
                    data.add(new JsonBean.ResultBean(title,pice));
                }while (query.moveToNext());
            }
            Toast.makeText(MainActivity.this,"没网络了",Toast.LENGTH_LONG).show();
            query.close();
            //适配器
            adter = new PullAdter(data,MainActivity.this);
            pullList1.setAdapter(adter);
        }

        //监听
        pullList1.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() {
            //下拉加载
            @Override
            public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) {
                //判断有没有网络
                if (Http.isABoolean(MainActivity.this)){
                    //如果有网就请求网络
                    Http.httpAsynTask(str, new Http.BackCallString() {
                        @Override
                        public void getData(String s) {
                            gsonj(s);
                        }
                    });
                }
                else{
                    Toast.makeText(MainActivity.this,"没网络了",Toast.LENGTH_LONG).show();
                }
                pullList1.onRefreshComplete();
            }

            //上拉刷新
            @Override
            public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) {
                //判断有没有网络
                if (Http.isABoolean(MainActivity.this)){
                    //如果有网就请求网络
                    Http.httpAsynTask(str, new Http.BackCallString() {
                        @Override
                        public void getData(String s) {
                            Gson gson = new Gson();
                            JsonBean jsonBean = gson.fromJson(s, JsonBean.class);
                            List<JsonBean.ResultBean> data1 = jsonBean.getResult();
                            data.addAll(data1);
                            adter.notifyDataSetChanged();
                            pullList1.onRefreshComplete();
                        }
                    });
                }
                else{
                    Toast.makeText(MainActivity.this,"没网络了",Toast.LENGTH_LONG).show();
                }
                pullList1.onRefreshComplete();
            }
        });
    }

    private void gsonj(String s) {
        Gson gson = new Gson();
        JsonBean jsonBean = gson.fromJson(s, JsonBean.class);
        data = jsonBean.getResult();
        //有数据就不添加
        if(dao.query("pers", null, null, null, null, null, null).moveToFirst()){

        }
        else{
            //没有数据,添加
            for (JsonBean.ResultBean bean:data){
                ContentValues values = new ContentValues();
                values.put("title",bean.getSummary());
                values.put("pice",bean.getImageUrl());
                dao.insert("pers",null,values);
            }
        }
        //适配器
        adter = new PullAdter(data,MainActivity.this);
        pullList1.setAdapter(adter);
    }
}

4.QQ页面+侧滑+PullToRefreshListView布局

<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"
    tools:context=".MainActivity"
    android:orientation="vertical"
    >

    <android.support.v4.widget.DrawerLayout
        android:id="@+id/drawr"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical"
            >

   <FrameLayout
       android:id="@+id/framelayout"
       android:layout_width="match_parent"
       android:layout_height="0dp"
       android:layout_weight="9"
       />

    <RadioGroup
        android:id="@+id/radioGroup"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:orientation="horizontal"
        android:gravity="center"
        >
        <RadioButton
            android:id="@+id/radioButton0"
            android:text="55"
            android:button="@null"
            android:gravity="center"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:drawableTop="@drawable/select1"
            />

        <RadioButton
            android:id="@+id/radioButton1"
            android:text="55"
            android:button="@null"
            android:gravity="center"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:drawableTop="@drawable/select2"
            />

        <RadioButton
            android:id="@+id/radioButton2"
            android:text="55"
            android:button="@null"
            android:gravity="center"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:drawableTop="@drawable/select3"
            />
    </RadioGroup>
        </LinearLayout>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_gravity="left"
            android:background="#818981"
            android:orientation="vertical"
            >

            <com.handmark.pulltorefresh.library.PullToRefreshListView
                android:id="@+id/pullList1"
                android:layout_width="match_parent"
                android:layout_height="match_parent"/>

        </LinearLayout>

    </android.support.v4.widget.DrawerLayout>
</LinearLayout>

5.TabLayout

public class Fragment1 extends Fragment {

    private TabLayout tabLayout;
    private ViewPager viewpager;
    private ArrayList<Fragment> data;
    private ArrayList<String> data2;

    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.fragment1, container,false);

        //找控件
        tabLayout = view.findViewById(R.id.tablayout);
        viewpager = view.findViewById(R.id.viewpager);
        //适配器
        TabAdapter adapter = new TabAdapter(getChildFragmentManager());
        viewpager.setAdapter(adapter);
        //绑定
        tabLayout.setupWithViewPager(viewpager);

        return view;
    }
}

6.TabLayout适配器

public class TabAdapter extends FragmentPagerAdapter {

    String[] strings = new String[]{"one","two"};

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

    @Override
    public Fragment getItem(int i) {
        switch (i){
            case 0:
                return new Fragment1_1();
            case 1:
                return new Fragment1_2();
        }
        return null;
    }

    @Override
    public int getCount() {
        return strings.length;
    }

    //此方法用来显示tab上的名字
    @Nullable
    @Override
    public CharSequence getPageTitle(int position) {
        return strings[position];
    }
}

7.TabLayout布局

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    >

     <android.support.design.widget.TabLayout
         android:id="@+id/tablayout"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"/>
    <android.support.v4.view.ViewPager
        android:id="@+id/viewpager"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        />

</LinearLayout>

8.Framgent1_1里的PullToRefreshListView

public class Fragment1_1 extends Fragment {

    private PullToRefreshListView pullList;
    private Dao dao;
    String str = "http://172.17.8.100/movieApi/movie/v1/findReleaseMovieList?count=10&page=1";
    private List<JsonBean.ResultBean> data;
    private PullAdter adter;

    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.fragment1_1, container,false);

        pullList = view.findViewById(R.id.pullList);
        //PullToRefreshListView.Mode.BOTH,上下拉都可以
        pullList.setMode(PullToRefreshListView.Mode.BOTH);
        //设置是否刷新的时候可以滑动
        pullList.setScrollingWhileRefreshingEnabled(true);

        dao = new Dao(getActivity());

        //判断有没有网络
        if (Http.isABoolean(getActivity())){
            //如果有网就请求网络
            Http.httpAsynTask(str, new Http.BackCallString() {
                @Override
                public void getData(String s) {
                    gsonj(s);
                }
            });
        }
        else{
            //如果没有网络,就请求数据库中的数据
            Cursor query = dao.query("pers", null, null, null, null, null, null);

            data = new ArrayList<JsonBean.ResultBean>();

            if (query.moveToFirst()){
                do{
                    String title = query.getString(query.getColumnIndex("title"));
                    String pice = query.getString(query.getColumnIndex("pice"));
                    data.add(new JsonBean.ResultBean(title,pice));
                }while (query.moveToNext());
            }
            Toast.makeText(getActivity(),"没网络了",Toast.LENGTH_LONG).show();
            query.close();
            //适配器
            adter = new PullAdter(data,getActivity());
            pullList.setAdapter(adter);
        }


        //监听
        pullList.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() {
            //下拉加载
            @Override
            public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) {
                //判断有没有网络
                if (Http.isABoolean(getActivity())){
                    //如果有网就请求网络
                    Http.httpAsynTask(str, new Http.BackCallString() {
                        @Override
                        public void getData(String s) {
                            gsonj(s);
                        }
                    });
                }
                else{
                    Toast.makeText(getActivity(),"没网络了",Toast.LENGTH_LONG).show();
                }
                pullList.onRefreshComplete();
            }

            //上拉刷新
            @Override
            public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) {
                //判断有没有网络
                if (Http.isABoolean(getActivity())){
                    //如果有网就请求网络
                    Http.httpAsynTask(str, new Http.BackCallString() {
                        @Override
                        public void getData(String s) {
                            Gson gson = new Gson();
                            JsonBean jsonBean = gson.fromJson(s, JsonBean.class);
                            List<JsonBean.ResultBean> data1 = jsonBean.getResult();
                            data.addAll(data1);
                            adter.notifyDataSetChanged();
                            pullList.onRefreshComplete();
                        }
                    });
                }
                else{
                    Toast.makeText(getActivity(),"没网络了",Toast.LENGTH_LONG).show();
                }
                pullList.onRefreshComplete();
            }
        });
        return view;
    }

    private void gsonj(String s) {
        Gson gson = new Gson();
        JsonBean jsonBean = gson.fromJson(s, JsonBean.class);
        data = jsonBean.getResult();
        //有数据就不添加
        if(dao.query("pers", null, null, null, null, null, null).moveToFirst()){

        }
        else{
            //没有数据,添加
            for (JsonBean.ResultBean bean:data){
                ContentValues values = new ContentValues();
                values.put("title",bean.getSummary());
                values.put("pice",bean.getImageUrl());
                dao.insert("pers",null,values);
            }
        }
        //适配器
        adter = new PullAdter(data,getActivity());
        pullList.setAdapter(adter);
    }
}

9.PullToRefreshListView适配器

public class PullAdter extends BaseAdapter {

    private List<JsonBean.ResultBean> data;
    private Context context;

    public PullAdter(List<JsonBean.ResultBean> data, Context context) {
        this.data = data;
        this.context = context;
    }

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

    @Override
    public Object getItem(int position) {
        return null;
    }

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

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

    @Override
    public int getItemViewType(int position) {
        return position%2;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {

        switch (getItemViewType(position)){
            case 0:
                Holder holder;
                if (convertView == null){
                    convertView = View.inflate(context,R.layout.item1,null);
                    holder = new Holder();
                    holder.name = convertView.findViewById(R.id.name);
                    holder.imag = convertView.findViewById(R.id.imag);
                    convertView.setTag(holder);
                }
                else{
                    holder = (Holder) convertView.getTag();
                }
                DisplayImageOptions options = new DisplayImageOptions.Builder()
                        .cacheInMemory(true)//让图片进行内存缓存
                        .cacheOnDisk(true).build();

                JsonBean.ResultBean dataBean = data.get(position);
                holder.name.setText(dataBean.getSummary());
                ImageLoader.getInstance().displayImage(dataBean.getImageUrl(),holder.imag);
                break;

            case 1:
                Holder2 holder2;
                if (convertView == null){
                    convertView = View.inflate(context,R.layout.item2,null);
                    holder2 = new Holder2();
                    holder2.name2 = convertView.findViewById(R.id.name2);
                    holder2.imag2 = convertView.findViewById(R.id.imag2);
                    convertView.setTag(holder2);
                }
                else{
                    holder2 = (Holder2) convertView.getTag();
                }
                DisplayImageOptions options1 = new DisplayImageOptions.Builder()
                        .cacheInMemory(true)//让图片进行内存缓存
                        .cacheOnDisk(true).build();

                JsonBean.ResultBean dataBean2 = data.get(position);
                holder2.name2.setText(dataBean2.getSummary());
                ImageLoader.getInstance().displayImage(dataBean2.getImageUrl(),holder2.imag2);
                break;
        }
        return convertView;
    }

    class Holder{
        ImageView imag;
        TextView name;
    }

    class Holder2{
        ImageView imag2;
        TextView name2;
    }
}

10.Http和网络判断

public class Http {

    public static void httpAsynTask(String str,final BackCallString backCallString){
        new AsyncTask<String,Integer,String>(){

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

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

    //接口
    public interface BackCallString{
        void getData(String s);
    }

    private BackCallString backCallString;

    public void setBackCallString(BackCallString backCallString) {
        this.backCallString = backCallString;
    }

    //http
    public static String reputHttpGet(String s){

        try {
            URL url = new URL(s);

            HttpURLConnection connection = (HttpURLConnection) url.openConnection();

            connection.setRequestMethod("GET");

            //设置请求码
            int code = connection.getResponseCode();

            //判断网络状态是否正确
            if (code == HttpURLConnection.HTTP_OK){
                InputStream stream = connection.getInputStream();
                BufferedReader reader = new BufferedReader(new InputStreamReader(stream,"utf-8"));

                StringBuilder builder = new StringBuilder();
                String st = "";
                while ((st = reader.readLine())!=null){
                    builder.append(st);
                }
                return builder.toString();
            }
            connection.disconnect();

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

    //网络判断
    public static boolean isABoolean(Context context){

        //判断参数是否为空
        if(context!=null){
            //获取链接管理器
            ConnectivityManager service = (ConnectivityManager)
                    context.getSystemService(Context.CONNECTIVITY_SERVICE);
            //获取网络状态
            NetworkInfo info = service.getActiveNetworkInfo();

            //判断网络是否可用
            if(info!=null){
                return info.isAvailable();
            }
        }
        return false;
    }

}

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看REAdMe.md或论文文件(如有),本项目仅用作交流学习参,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看REAdMe.md或论文文件(如有),本项目仅用作交流学习参,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看READme.md或论文文件(如有),本项目仅用作交流学习参,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值