练习一(轮播+侧滑+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); }}
阅读全文
0 0
- 练习一(轮播+侧滑+TabLayout+PullTorefresh)
- DrawerLayout侧滑+TabLayout横向滑动+ViewPager+轮播+PullToRefresh
- PullToRefresh+TabLayout+DrawerLayout+无限轮播集成使用
- 侧拉+pullToRefresh+无限轮播+tabLayout+fragment
- 侧滑+PullToRefresh+无限轮播
- PullToRefresh+TabLayout+侧滑菜单栏+无限轮播小圆点+Fragment多条目+收藏网页数据到SQLite数据库
- 分页+frament+PullToRefresh+轮播
- 无限轮播+pulltorefresh刷新
- PullToRefresh+Banner无限轮播
- PullToRefresh添加HeaderView(Banner轮播)
- 侧滑+Tablayout+banner+pulltorefresh+多条目+获取网络图片
- 侧拉+TabLayout+轮播+XListView
- 综合练习(轮播+Fragment+xlistView)
- 练习轮播海报
- 练习:图片轮播
- PullToRefresh+ImageLoader+TabLayout+ViewPager+Fragment
- PullToRefresh,fragment与TabLayout使用
- PullToRefresh刷新的相关代码结合无限轮播
- 深入剖析C函数参数的结合顺序及a++和++a的区别
- iOS 【自适应拆分换行评论 UILabel 列表-类车主评论页面】
- SlidingMenu最简单的使用,实现侧拉效果
- Camera显示之Hal层的适配
- (一)整合spring cloud云服务架构
- 练习一(轮播+侧滑+TabLayout+PullTorefresh)
- Linux如何查看登陆用户信息
- 高晓松三问阿里巴巴合伙人,为什么来 为什么留 为什么战
- 机器学习0基础学习路线
- Qt this指针相关理解
- mysql 行级锁 索引唯一值
- Xcode 9.0 报错, Safe Area Layout Guide Before IOS 9.0
- 依赖
- 购物车