练习一(轮播+侧滑+TabLayout+PullTorefresh)

来源:互联网 发布:csgo全皮肤mac破解版 编辑:程序博客网 时间:2024/06/06 00:49

做的时候先将PullToRefresh的依赖导入app中


/*

*activity_main.xml

*/

<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:id="@+id/activity_main"    android:layout_width="match_parent"    android:layout_height="match_parent"    tools:context="helloworld.example.com.zhoukao3.MainActivity">    <android.support.v4.view.ViewPager        android:id="@+id/viewPager"        android:layout_width="match_parent"        android:layout_height="match_parent"></android.support.v4.view.ViewPager>    <LinearLayout        android:id="@+id/linear"        android:layout_width="match_parent"        android:layout_height="40dp"        android:layout_alignParentBottom="true"        android:gravity="right"        android:orientation="horizontal">        <Button            android:id="@+id/button"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:gravity="right"            android:text="进入系统"            />    </LinearLayout></RelativeLayout>

/*

*MainActivity.java

*/

package helloworld.example.com.zhoukao3;import android.content.Intent;import android.os.Handler;import android.os.Message;import android.support.v4.view.PagerAdapter;import android.support.v4.view.ViewPager;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.Button;import android.widget.ImageView;import android.widget.LinearLayout;import com.nostra13.universalimageloader.core.ImageLoader;import java.util.ArrayList;import java.util.Timer;import java.util.TimerTask;public class MainActivity extends AppCompatActivity {   private static  final String JSON_URL = "http://apis.juhe.cn/cook/query?key=dd452181a9ca8ee5710d153538a4b8d6&menu=%E8%A5%BF%E7%BA%A2%E6%9F%BF&rn=10&pn=1";    private ViewPager viewPager;    private LinearLayout linear;    private Button button;    private ArrayList<ImageView> imgList = new ArrayList<ImageView>();    private ArrayList<View> dotList = new ArrayList<View>();    private int current = 0;    private int dot = 0;    Handler handler = new Handler(){        @Override        public void handleMessage(Message msg) {            super.handleMessage(msg);            //viewPager.setCurrentItem(msg.what);            viewPager.setCurrentItem(current);            dotList.get(dot).setBackgroundResource(R.drawable.dot_normal);            dotList.get(current % dotList.size()).setBackgroundResource(R.drawable.dot_faucesd);            dot= current % dotList.size();        }    };    //获取图片    private String[] img_url = new String[]{            "https://zxpic.gtimg.com/infonew/0/wechat_pics_-18812496.static/640",            "https://zxpic.gtimg.com/infonew/0/wechat_pics_-45004617.jpg/640",            "https://zxpic.gtimg.com/infonew/0/wechat_pics_-33170335.jpg/640",            "https://zxpic.gtimg.com/infonew/0/wechat_pics_-33170335.jpg/640",            "https://zxpic.gtimg.com/infonew/0/wechat_pics_-45056228.jpg/640",            "https://zxpic.gtimg.com/infonew/0/wechat_pics_-28219915.jpg/640"    };    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        init();    }    private void init() {        viewPager = (ViewPager) findViewById(R.id.viewPager);        linear = (LinearLayout) findViewById(R.id.linear);        button = (Button) findViewById(R.id.button);        //获取图片        getImageViews();        //获取小圆点        getCircles();        //添加适配器        viewPager.setAdapter(new MyAdapter());        int currentitem = Integer.MAX_VALUE / 2 - Integer.MAX_VALUE / 2%5;        viewPager.setCurrentItem(currentitem);        //current = viewPager.getCurrentItem();        dotList.get(0).setBackgroundResource(R.drawable.dot_faucesd);        Timer timer = new Timer();        timer.schedule(new TimerTask() {            @Override            public void run() {                current = viewPager.getCurrentItem()+1;                handler.sendEmptyMessage(0*123);            }        },3000,2000);        button.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                Intent intent = new Intent(MainActivity.this,Second.class);                startActivity(intent);                finish();            }        });    }    //适配器    class MyAdapter extends PagerAdapter{        @Override        public int getCount() {            return Integer.MAX_VALUE;        }        @Override        public boolean isViewFromObject(View view, Object object) {            return view == object;        }        @Override        public void destroyItem(ViewGroup container, int position, Object object) {            container.removeView((View) object);        }        @Override        public Object instantiateItem(ViewGroup container, int position) {            int item = position % imgList.size();            ImageView imageView = imgList.get(item);            container.addView(imageView);            return imageView;        }    }    //获取小圆点    public void getCircles(){        for (int i = 0; i< img_url.length; i++){            View view = LayoutInflater.from(this).inflate(R.layout.item,null);            View dots = view.findViewById(R.id.circle);            dotList.add(dots);            linear.addView(view);        }    }    //获取图片    public void getImageViews(){        for (int i = 0; i< img_url.length; i++){            ImageView imageView = new ImageView(this);            imageView.setScaleType(ImageView.ScaleType.FIT_XY);            ImageLoader.getInstance().displayImage(img_url[i],imageView);            imgList.add(imageView);        }    }}

/*

*activity_second.xml

*/

<?xml version="1.0" encoding="utf-8"?><android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    xmlns:app="http://schemas.android.com/apk/res-auto"    android:id="@+id/mydraw"    android:layout_width="match_parent"    android:layout_height="match_parent"    tools:context="helloworld.example.com.zhoukao3.Second">    <LinearLayout        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:orientation="vertical">        <android.support.design.widget.TabLayout            android:id="@+id/tabs"            android:layout_width="match_parent"            android:layout_height="wrap_content"            app:tabIndicatorColor="@color/red"            app:tabMode="scrollable"            app:tabSelectedTextColor="@color/red"            app:tabTextColor="@color/black">        </android.support.design.widget.TabLayout>        <android.support.v4.view.ViewPager            android:id="@+id/vp_view"            android:layout_width="match_parent"            android:layout_height="wrap_content">        </android.support.v4.view.ViewPager>    </LinearLayout>    <ListView        android:id="@+id/lv"        android:layout_width="240sp"        android:layout_height="match_parent"        android:layout_gravity="start"        android:choiceMode="singleChoice"        android:divider="#f00"        android:dividerHeight="1dp"        android:entries="@array/mmm"        android:background="#fff"></ListView></android.support.v4.widget.DrawerLayout>

/*

*Second.java

*/

package helloworld.example.com.zhoukao3;import android.support.design.widget.TabLayout;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.AppCompatActivity;import android.os.Bundle;import android.view.LayoutInflater;import android.view.View;import android.widget.AdapterView;import android.widget.ListView;import java.util.ArrayList;import java.util.List;public class Second extends AppCompatActivity {    private DrawerLayout drawerLayout;    private ListView lv;    private TabLayout tabLayout;    private ViewPager viewPager;    private String[] channels = {"推荐", "热点", "体育", "娱乐", "社会", "汽车", "教育", "财经", "科技", "游戏"};    private String[] urls = {            "http://gank.io/api/data/Android/10/",            "http://gank.io/api/data/Android/10/",            "http://gank.io/api/data/Android/10/",            "http://gank.io/api/data/Android/10/",            "http://gank.io/api/data/Android/10/",            "http://gank.io/api/data/Android/10/",            "http://gank.io/api/data/Android/10/",            "http://gank.io/api/data/Android/10/",            "http://gank.io/api/data/Android/10/",            "http://gank.io/api/data/Android/10/",    };    private LayoutInflater inflater;    private List<String> mTitleList = new ArrayList<>();//页卡标题集合    private List<ChannelFragment> mViewList = new ArrayList<>();    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_second);        drawerLayout = (DrawerLayout) findViewById(R.id.mydraw);        lv = (ListView) findViewById(R.id.lv);        viewPager = (ViewPager) findViewById(R.id.vp_view);        tabLayout = (TabLayout) findViewById(R.id.tabs);        inflater = LayoutInflater.from(this);        lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {            @Override            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {                drawerLayout.openDrawer(lv);                drawerLayout.closeDrawer(lv);            }        });        for (int i = 0; i < channels.length; i++) {            //创建栏目的fragment            ChannelFragment fragment = new ChannelFragment();            Bundle b = new Bundle();            b.putString("name", channels[i]);            b.putString("urls", urls[i]);            fragment.setArguments(b);            //收集fragment            mViewList.add(fragment);            //tablayout添加tab选项卡            tabLayout.addTab(tabLayout.newTab().setText(channels[i]));        }        FragmentManager fm = getSupportFragmentManager();        MyFragmentPagerAdapter adapter = new MyFragmentPagerAdapter(fm,mViewList);        viewPager.setAdapter(adapter);        tabLayout.setupWithViewPager(viewPager);        //tabLayout.setTabsFromPagerAdapter(adapter);    }    class MyFragmentPagerAdapter extends FragmentPagerAdapter {        private List<ChannelFragment> mViewList;        public MyFragmentPagerAdapter(FragmentManager fm, List<ChannelFragment> mViewList) {            super(fm);            this.mViewList = mViewList;        }        @Override        public Fragment getItem(int position) {            return mViewList.get(position);        }        @Override        public int getCount() {            return mViewList.size();        }        @Override        public CharSequence getPageTitle(int position) {            return channels[position];        }    }}

/*

*ChannelFragment

*/

package helloworld.example.com.zhoukao3;import android.os.AsyncTask;import android.os.Bundle;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.ListView;import android.widget.TextView;import com.google.gson.Gson;import com.handmark.pulltorefresh.library.PullToRefreshBase;import com.handmark.pulltorefresh.library.PullToRefreshListView;import java.util.List;public class ChannelFragment extends Fragment {    public String name;    public String urls;    private TextView textView;    private PullToRefreshListView listView;    private NetWorkUtils netWorkUtils;    private List<SuperClass.ResultsBean> list;    private MyAdapter adapter;    private UserDao dao;    //private static final String JSON_URL = "http://ic.snssdk.com/2/article/v25/stream/?count=20&min_behot_time=1455521444&bd_city=%E5%8C%97%E4%BA%AC%E5%B8%82";    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        Bundle bundle = getArguments();        name = (String) bundle.get("name");        urls = (String) bundle.get("urls");    }    @Nullable    @Override    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {        View view = inflater.inflate(R.layout.pager_item,null);        textView = (TextView) view.findViewById(R.id.textView);        textView.setText(name+",,"+urls);        listView = (PullToRefreshListView) view.findViewById(R.id.pull_refresh_list);        dao = new UserDao(getActivity());        netWorkUtils = new NetWorkUtils();        new AsyncTask<String,Integer,String>(){            @Override            protected String doInBackground(String... params) {                urls = params[0];                String json = netWorkUtils.getjson(urls);                return json;            }            @Override            protected void onPostExecute(String s) {                super.onPostExecute(s);                Gson gson = new Gson();                SuperClass fromJson = gson.fromJson(s, SuperClass.class);                list = fromJson.getResults();                for (int i=0 ; i < list.size();i++){                    String createdAt = list.get(i).getCreatedAt();                    String desc = list.get(i).getDesc();                    String who = list.get(i).getWho();                    dao.add(createdAt,desc,who);                }                adapter = new MyAdapter(list,getActivity());                listView.setAdapter(adapter);            }        }.execute(urls+"1");        listView.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener<ListView>() {            @Override            public void onRefresh(PullToRefreshBase<ListView> refreshView) {                pullToRefresh();            }        });        listView.setOnLastItemVisibleListener(new PullToRefreshBase.OnLastItemVisibleListener() {            @Override            public void onLastItemVisible() {                loadMore();            }        });        return view;    }    private void initData() {        pullToRefresh();    }    public void pullToRefresh(){         new AsyncTask<String,Integer,String>(){             @Override             protected String doInBackground(String... params) {                 urls = params[0];                 String json = netWorkUtils.getjson(urls);                 return json;             }             @Override             protected void onPostExecute(String s) {                 super.onPostExecute(s);                 Gson gson = new Gson();                 SuperClass fromJson = gson.fromJson(s, SuperClass.class);                 list = fromJson.getResults();                 adapter = new MyAdapter(list,getActivity());                 listView.setAdapter(adapter);                 listView.onRefreshComplete();             }         }.execute(urls+"1");    }    int i = 0;    public void loadMore(){        new AsyncTask<String,Integer,String>(){            @Override            protected String doInBackground(String... params) {                i++;                urls = params[0];                String json = netWorkUtils.getjson(urls);                return json;            }            @Override            protected void onPostExecute(String s) {                super.onPostExecute(s);                Gson gson = new Gson();                SuperClass fromJson = gson.fromJson(s, SuperClass.class);                List<SuperClass.ResultsBean> results = fromJson.getResults();                list.addAll(results);                adapter.notifyDataSetChanged();            }        }.execute(urls+i);    }}

/*

*pager_item.xml(Fragment的设置页面)

*/

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:orientation="vertical" android:layout_width="match_parent"    android:layout_height="match_parent">    <TextView        android:id="@+id/textView"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="textView" />    <com.handmark.pulltorefresh.library.PullToRefreshListView        xmlns:ptr="http://schemas.android.com/apk/res-auto"        android:id="@+id/pull_refresh_list"        android:layout_width="fill_parent"        android:layout_height="fill_parent"        android:cacheColorHint="#000000"        android:divider="#19000000"        android:dividerHeight="4dp"        android:fadingEdge="none"        android:fastScrollEnabled="false"        android:footerDividersEnabled="false"        android:headerDividersEnabled="false"        android:smoothScrollbar="true"        ptr:ptrAnimationStyle="rotate"        ptr:ptrHeaderTextColor="#ffffff"        ptr:ptrHeaderSubTextColor="#00ffff"        ptr:ptrHeaderBackground="@null"        ptr:ptrDrawable="@mipmap/ic_launcher"/></LinearLayout>

/*

*MyAdapter.java

*/

package helloworld.example.com.zhoukao3;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.List;public class MyAdapter extends BaseAdapter{    private List<SuperClass.ResultsBean> list;    private Context context;    private LayoutInflater inflater;    public MyAdapter(List<SuperClass.ResultsBean> list, Context context) {        this.list = list;        this.context = context;        inflater = LayoutInflater.from(context);    }    @Override    public int getCount() {        return list.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) {        int re = 0;        if (list.get(position).getImages() != null){            return 0;        }else if (list.get(position).getImages() == null){            return  1;        }        return re;    }    @Override    public View getView(int position, View convertView, ViewGroup parent) {        int es = getItemViewType(position);        if (es == 0){            ViewHolder1 holder1;            if (convertView == null){                holder1 = new ViewHolder1();                convertView = inflater.inflate(R.layout.lv_item1,null);                holder1.createdAt = (TextView) convertView.findViewById(R.id.createdAt);                holder1.desc = (TextView) convertView.findViewById(R.id.desc);                holder1.who = (TextView) convertView.findViewById(R.id.who);                holder1.images = (ImageView) convertView.findViewById(R.id.images);                convertView.setTag(holder1);            }else {                holder1 = (ViewHolder1) convertView.getTag();            }            holder1.createdAt.setText(list.get(position).getCreatedAt());            holder1.desc.setText(list.get(position).getDesc());            holder1.who.setText(list.get(position).getWho());            ImageLoader.getInstance().displayImage(list.get(position).getImages().get(0),holder1.images);        }else if (es == 1){            ViewHolder2 holder2;            if (convertView == null){                holder2 = new ViewHolder2();                convertView = inflater.inflate(R.layout.lv_item2,null);                holder2.createdAt = (TextView) convertView.findViewById(R.id.createdAt);                holder2.desc = (TextView) convertView.findViewById(R.id.desc);                holder2.who = (TextView) convertView.findViewById(R.id.who);                convertView.setTag(holder2);            }else {                holder2 = (ViewHolder2) convertView.getTag();            }            holder2.createdAt.setText(list.get(position).getCreatedAt());            holder2.desc.setText(list.get(position).getDesc());            holder2.who.setText(list.get(position).getWho());        }        return convertView;    }    class ViewHolder1{        TextView createdAt,desc,who;        ImageView images;    }    class ViewHolder2{        TextView createdAt,desc,who;    }}

/*

*lv_item1.xml

*/

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:orientation="vertical" android:layout_width="match_parent"    android:layout_height="match_parent">    <TextView        android:id="@+id/createdAt"        android:layout_width="wrap_content"        android:layout_height="wrap_content" />    <TextView        android:id="@+id/desc"        android:layout_width="wrap_content"        android:layout_height="wrap_content" />    <TextView        android:id="@+id/who"        android:layout_width="wrap_content"        android:layout_height="wrap_content" />    <ImageView        android:id="@+id/images"        android:layout_width="wrap_content"        android:layout_height="wrap_content" /></LinearLayout>

/*

*lv_item2.xml

*/

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:orientation="vertical" android:layout_width="match_parent"    android:layout_height="match_parent">    <TextView        android:id="@+id/createdAt"        android:layout_width="wrap_content"        android:layout_height="wrap_content" />    <TextView        android:id="@+id/desc"        android:layout_width="wrap_content"        android:layout_height="wrap_content" />    <TextView        android:id="@+id/who"        android:layout_width="wrap_content"        android:layout_height="wrap_content" /></LinearLayout>

/*

*item.xml(小圆点)

*/

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:orientation="vertical" android:layout_width="match_parent"    android:layout_height="match_parent">    <View        android:id="@+id/circle"        android:layout_width="8dp"        android:layout_height="8dp"        android:layout_margin="3dp"        android:background="@drawable/dot_normal"></View></LinearLayout>

/*

*dot_faucesd.xml

*/

<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">    <solid android:color="#f00"></solid>    <corners android:radius="8dp"></corners></shape>

/*

*dot_normal.xml

*/

<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">    <solid android:color="#88000000"></solid>    <corners android:radius="8dp"></corners></shape>

/*

*strings.xml

*/

<string-array name="mmm">    <item>关注</item></string-array>

/*

*colors.xml

*/

<color name="red">#f00</color><color name="black">#000</color>

/*

*Sqlite.java

*/

package helloworld.example.com.zhoukao3;import android.content.Context;import android.database.sqlite.SQLiteDatabase;import android.database.sqlite.SQLiteOpenHelper;public class Sqlite extends SQLiteOpenHelper{    public Sqlite(Context context) {        super(context, "User.db", null, 1);    }    @Override    public void onCreate(SQLiteDatabase db) {   ///id integer primary key autoincrement        db.execSQL("create table user(id integer primary key autoincrement,createdAt varchar(100),desc varchar(100),who varchar(20))");    }    @Override    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {    }}

/*

*Dao

*/

package helloworld.example.com.zhoukao3;import android.content.ContentValues;import android.content.Context;import android.database.Cursor;import android.database.sqlite.SQLiteDatabase;import java.util.ArrayList;import java.util.List;public class UserDao {    private Sqlite sqlite;    private SQLiteDatabase sd;    public UserDao(Context context){        sqlite = new Sqlite(context);        sd = sqlite.getReadableDatabase();    }    //添加    public boolean add(String createdAt, String desc, String who){        ContentValues values = new ContentValues();        values.put("createdAt",createdAt);        values.put("desc",desc);        values.put("who",who);        long insert = sd.insert("user", null, values);        if (insert != -1){            return true;        }else {            return false;        }    }    //查询    public List<UserBean> select(){        Cursor query = sd.query("user", null, null, null, null, null, null);        List<UserBean> list = new ArrayList<UserBean>();        while (query.moveToNext()){            String createdAt = query.getString(query.getColumnIndex("createdAt"));            String desc = query.getString(query.getColumnIndex("desc"));            String who = query.getString(query.getColumnIndex("who"));            UserBean userBean = new UserBean();            userBean.setCreatedAt(createdAt);            userBean.setDesc(desc);            userBean.setWho(who);            list.add(userBean);        }        return list;    }}

/*

*MyApplication

*/

package helloworld.example.com.zhoukao3;import android.app.Application;import com.nostra13.universalimageloader.core.ImageLoader;import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;public class MyApp extends Application{    @Override    public void onCreate() {        super.onCreate();       ImageLoaderConfiguration configuration = ImageLoaderConfiguration.createDefault(this);        ImageLoader.getInstance().init(configuration);    }}

原创粉丝点击