22222222
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<application
android:name=".appliction"
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
public class MainActivity extends AppCompatActivity implements XListView.IXListViewListener{ private List<String > imagelist=new ArrayList<>(); private ViewPager pager; private Handler handler=new Handler(){ @Override public void handleMessage(Message msg) { int what=msg.what; pager.setCurrentItem(what); } }; private RadioGroup rg; private int con=0; private TextView night; private XListView xlv; private int page=1; private boolean flag; private List<Dao> dblist=new ArrayList<>(); private MyBaseadapter adapter; private List<Bean.ListBean> list; private SQLiteDatabase db; private DbBaseadapter ada; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //实例化数据库 Helper helper = new Helper(MainActivity.this); db = helper.getWritableDatabase(); //7 点击右上角的地图按钮,实现日夜间模式切换(10分) night = (TextView) findViewById(R.id.night); night.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { yejian(); } }); // 实现图片无限轮播,并添加图片轮播指示器(各5分,10分) pager = (ViewPager) findViewById(R.id.pager); rg = (RadioGroup) findViewById(R.id.rg); imagelist.add("https://img10.360buyimg.com/da/jfs/t4747/277/1368712300/170619/35098d7f/58f038e0N9b3a0ca5.jpg"); imagelist.add("https://img14.360buyimg.com/da/jfs/t4915/21/1427207714/81116/b005bb06/58f08963Ndb295b3c.jpg"); imagelist.add("https://img13.360buyimg.com/da/jfs/t4651/104/2867456043/68336/99da4c16/58f41eaeN5b614a63.jpg"); pager.setAdapter(new My()); jian(); new Thread() { @Override public void run() { while (true) { try { Thread.sleep(1000); con++; handler.sendEmptyMessage(con); } catch (Exception e) { e.printStackTrace(); } } } }.start(); xlv = (XListView) findViewById(R.id.xlv); xlv.setPullLoadEnable(true); xlv.setXListViewListener(this); //判断是否有网 ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo netInfo = cm.getActiveNetworkInfo(); if (netInfo != null && netInfo.isConnectedOrConnecting()) { Toast.makeText(MainActivity.this,"有网", Toast.LENGTH_SHORT).show(); data(); }else { Toast.makeText(MainActivity.this,"没网", Toast.LENGTH_SHORT).show(); quary(); if (ada ==null) { ada = new DbBaseadapter(MainActivity.this, dblist); xlv.setAdapter(ada); }else{ ada.sss(dblist,flag); } } } public void quary(){ Cursor query = db.query("user", null, null, null, null, null, null); while(query.moveToNext()){ Dao d=new Dao(); d.title=query.getString(query.getColumnIndex("title")); d.pic=query.getString(query.getColumnIndex("pic")); d.type=query.getInt(query.getColumnIndex("type")); dblist.add(d); } } //1 发起网络请求获取数据并显示(网络请求5分,数据显示5分,共10分) public void data(){ jiexi("http://qhb.2dyt.com/Bwei/news?postkey=9rff1d1AK&type=5"); } public void jiexi(String path) { new AsyncTask<String, Void, String>() { @Override protected void onPostExecute(String s) { if (s != null) { Gson gson = new Gson(); Bean bean = gson.fromJson(s, Bean.class); list = bean.getList(); if (adapter==null) { adapter = new MyBaseadapter(MainActivity.this, list); xlv.setAdapter(adapter); }else{ adapter.sss(list,flag); } insert(); } } @Override protected String doInBackground(String... params) { try { URL url = new URL(params[0]); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setRequestMethod("GET"); connection.setReadTimeout(3000); connection.setConnectTimeout(3000); int code = connection.getResponseCode(); if (code == 200) { InputStream is = connection.getInputStream(); return info.readFromNetWork(is); } } catch (Exception e) { e.printStackTrace(); } return null; } }.execute(path); } public void insert(){ for (int i=0;i<list.size();i++){ ContentValues values=new ContentValues(); values.put("title",list.get(i).getTitle()); values.put("pic",list.get(i).getPic()); values.put("type",list.get(i).getType()); db.insert("user",null,values); } } @Override public void onRefresh() { flag=false; ++page; data(); xlv.stopRefresh(true); } @Override public void onLoadMore() { flag=true; ++page; data(); xlv.stopLoadMore(); } //轮播适配器 class My extends PagerAdapter { @Override public int getCount() { return Integer.MAX_VALUE; } @Override public boolean isViewFromObject(View view, Object object) { return view==object; } @Override public Object instantiateItem(ViewGroup container, int position) { ImageView imageView=new ImageView(MainActivity.this); ImageLoader.getInstance().displayImage(imagelist.get(position%imagelist.size()),imageView,appliction.getImageOptions()); container.addView(imageView); return imageView; } @Override public void destroyItem(ViewGroup container, int position, Object object) { container.removeView((View) object); } } //pager和radiogroup结合使点和图片一起联动 public void jian(){ pager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { } @Override public void onPageSelected(int position) { switch (position%imagelist.size()){ case 0: rg.check(R.id.rb1); break; case 1: rg.check(R.id.rb2); break; case 2: rg.check(R.id.rb3); break; } } @Override public void onPageScrollStateChanged(int state) { } }); rg.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { @Override public void onCheckedChanged(RadioGroup group, @IdRes int checkedId) { switch (checkedId%imagelist.size()){ case R.id.rb1: pager.setCurrentItem(0); break; case R.id.rb2: pager.setCurrentItem(1); break; case R.id.rb3: pager.setCurrentItem(2); break; } } }); } //夜间模式 public void yejian(){ int mode = getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK; if(mode == Configuration.UI_MODE_NIGHT_YES) { AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO); } else if(mode == Configuration.UI_MODE_NIGHT_NO) { AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES); } else { // blah blah } recreate(); }
public class MyBaseadapter extends BaseAdapter { private List<Bean.ListBean> list; private Context context; public MyBaseadapter(Context context, List<Bean.ListBean> list) { this.context=context; this.list=list; } public void sss(List<Bean.ListBean> data,boolean flag){ for (Bean.ListBean s: data) { if (flag){ list.add(s); }else{ list.add(0,s); } } notifyDataSetChanged(); } @Override public int getCount() { return list!=null?list.size():0; } @Override public Object getItem(int position) { return null; } @Override public long getItemId(int position) { return 0; } @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHoder hoder=null; if (convertView==null){ hoder=new ViewHoder(); // 实现listview 多条目加载,总共两种类型(各5分,共10分) if(list.get(position).getType()==4){//四中图片的类型 convertView=View.inflate(context,R.layout.item,null); hoder.image1= (ImageView) convertView.findViewById(R.id.image1); hoder.image2= (ImageView) convertView.findViewById(R.id.image2); hoder.image3= (ImageView) convertView.findViewById(R.id.image3); hoder.image4= (ImageView) convertView.findViewById(R.id.image4); hoder.title1= (TextView) convertView.findViewById(R.id.title1); }else if(list.get(position).getType()==2){//两种图片的类型 convertView=View.inflate(context,R.layout.item1,null); hoder.image5= (ImageView) convertView.findViewById(R.id.image5); hoder.image6= (ImageView) convertView.findViewById(R.id.image6); hoder.title2= (TextView) convertView.findViewById(R.id.title2); } convertView.setTag(hoder); }else{ hoder= (ViewHoder) convertView.getTag(); } if(list.get(position).getType()==4){ String pic = list.get(position).getPic(); String [] temp = null; temp = pic.split("\\|"); ImageLoader.getInstance().displayImage(temp[0],hoder.image1,appliction.getImageOptions()); ImageLoader.getInstance().displayImage(temp[1],hoder.image2,appliction.getImageOptions()); ImageLoader.getInstance().displayImage(temp[2],hoder.image3,appliction.getImageOptions()); ImageLoader.getInstance().displayImage(temp[3],hoder.image4,appliction.getImageOptions()); hoder.title1.setText(list.get(position).getTitle()); }else if(list.get(position).getType()==2) { String pic = list.get(position).getPic(); String[] split=null; split = pic.split("\\|");//接口pic是|这个隔开的所以要分割放入一个空的集合 String str1=split[0]; String str2=split[1]; ImageLoader.getInstance().displayImage(str1,hoder.image5,appliction.getImageOptions()); ImageLoader.getInstance().displayImage(str2,hoder.image6,appliction.getImageOptions()); hoder.title2.setText(list.get(position).getTitle()); } return convertView; } class ViewHoder{ private TextView title1,title2; private ImageView image1,image2,image3,image4,image5,image6; } }
public class DbBaseadapter extends BaseAdapter{ private List<Dao> dblist; private Context context; public DbBaseadapter(Context context, List<Dao> dblist) { this.context=context; this.dblist=dblist; } public void sss(List<Dao> data,boolean flag){ for ( Dao s: data) { if (flag){ dblist.add(s); }else{ dblist.add(0,s); } } notifyDataSetChanged(); } @Override public int getCount() { return dblist!=null?dblist.size():0; } @Override public Object getItem(int position) { return null; } @Override public long getItemId(int position) { return 0; } @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHoder hoder=null; if (convertView==null){ hoder=new ViewHoder(); // 实现listview 多条目加载,总共两种类型(各5分,共10分) if(dblist.get(position).getType()==4){//四中图片的类型 convertView=View.inflate(context,R.layout.item,null); hoder.image1= (ImageView) convertView.findViewById(R.id.image1); hoder.image2= (ImageView) convertView.findViewById(R.id.image2); hoder.image3= (ImageView) convertView.findViewById(R.id.image3); hoder.image4= (ImageView) convertView.findViewById(R.id.image4); hoder.title1= (TextView) convertView.findViewById(R.id.title1); }else if(dblist.get(position).getType()==2){//两种图片的类型 convertView=View.inflate(context,R.layout.item1,null); hoder.image5= (ImageView) convertView.findViewById(R.id.image5); hoder.image6= (ImageView) convertView.findViewById(R.id.image6); hoder.title2= (TextView) convertView.findViewById(R.id.title2); } convertView.setTag(hoder); }else{ hoder= (ViewHoder) convertView.getTag(); } if(dblist.get(position).getType()==4){ String pic = dblist.get(position).getPic(); String [] temp = null; temp = pic.split("\\|"); ImageLoader.getInstance().displayImage(temp[0],hoder.image1,appliction.getImageOptions()); ImageLoader.getInstance().displayImage(temp[1],hoder.image2,appliction.getImageOptions()); ImageLoader.getInstance().displayImage(temp[2],hoder.image3,appliction.getImageOptions()); ImageLoader.getInstance().displayImage(temp[3],hoder.image4,appliction.getImageOptions()); hoder.title1.setText(dblist.get(position).getTitle()); }else if(dblist.get(position).getType()==2) { String pic = dblist.get(position).getPic(); String[] split=null; split = pic.split("\\|");//接口pic是|这个隔开的所以要分割放入一个空的集合 String str1=split[0]; String str2=split[1]; ImageLoader.getInstance().displayImage(str1,hoder.image5,appliction.getImageOptions()); ImageLoader.getInstance().displayImage(str2,hoder.image6,appliction.getImageOptions()); hoder.title2.setText(dblist.get(position).getTitle()); } return convertView; } class ViewHoder{ private TextView title1,title2; private ImageView image1,image2,image3,image4,image5,image6; } }
public class Dao { public String title,pic; public int type; public void setTitle(String title) { this.title = title; } public String getTitle() { return title; } public void setPic(String pic) { this.pic = pic; } public int getType() { return type; } public void setType(int type) { this.type = type; } public String getPic() { return pic; } }
public class Helper extends SQLiteOpenHelper { public Helper(Context context) { super(context, "user.db", null, 1); } @Override public void onCreate(SQLiteDatabase db) { db.execSQL("create table user(_id integer primary key autoincrement,title text,pic text,type integer)"); } @Override public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) { } }
<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" android:orientation="vertical" tools:context="com.example.wangshuaibiao201709221507b.MainActivity"> <LinearLayout android:id="@+id/linear" android:background="#f00" android:layout_width="match_parent" android:layout_height="30dp" android:orientation="horizontal"> <TextView android:layout_margin="5dp" android:layout_gravity="center" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="北京"/> <EditText android:layout_gravity="center" android:background="@color/viewBackground" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="2" android:hint="国风悦府" android:gravity="center"/> <TextView android:id="@+id/night" android:layout_margin="5dp" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="地图"/> </LinearLayout> <android.support.v4.view.ViewPager android:layout_below="@+id/linear" android:layout_width="match_parent" android:layout_height="100dp" android:id="@+id/pager"></android.support.v4.view.ViewPager> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/ll" android:layout_marginTop="80dp" android:orientation="vertical"> <RadioGroup android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/rg" android:orientation="horizontal" android:gravity="center" > <RadioButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/rb1" android:checked="true"/> <RadioButton android:id="@+id/rb2" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <RadioButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/rb3"/> </RadioGroup> </LinearLayout> <com.limxing.xlistview.view.XListView android:background="@color/viewBackground" android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/xlv" android:layout_below="@+id/pager"></com.limxing.xlistview.view.XListView> </RelativeLayout>
<TextView android:id="@+id/title1" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="TextView" android:layout_margin="8dp"/> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <ImageView android:layout_margin="5dp" android:layout_weight="1" android:src="@mipmap/ic_launcher" android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/image1"/> <ImageView android:layout_margin="5dp" android:layout_weight="1" android:src="@mipmap/ic_launcher" android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/image2"/> <ImageView android:layout_margin="5dp" android:layout_weight="1" android:src="@mipmap/ic_launcher" android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/image3"/> <ImageView android:layout_margin="5dp" android:layout_weight="1" android:src="@mipmap/ic_launcher" android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/image4"/> </LinearLayout>
<TextView android:id="@+id/title2" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="TextView" android:layout_margin="8dp"/> <LinearLayout android:layout_margin="5dp" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <ImageView android:layout_weight="1" android:src="@mipmap/ic_launcher" android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/image5"/> <ImageView android:layout_weight="1" android:src="@mipmap/ic_launcher" android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/image6"/> </LinearLayout>