mainfests
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.yuekao"> <uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".SecondActivity"/> </application> </manifest>utils_checkNet
package com.example.yuekao.utils; import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.net.ConnectivityManager; import android.net.NetworkInfo; import android.support.v7.app.AlertDialog; public class CheckNet { public boolean isNetWork(Context context) { ConnectivityManager manager= (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo info=manager.getActiveNetworkInfo(); return info!=null&&info.isConnected(); } }utils_GlidemangeLoader
package com.example.yuekao.utils; import android.content.Context; import android.widget.ImageView; import com.bumptech.glide.Glide; import com.youth.banner.loader.ImageLoader; public class GlideImageLoader extends ImageLoader { @Override public void displayImage(Context context, Object path, ImageView imageView) { Glide.with(context).load(path).into(imageView); } }utils_insert
package com.example.yuekao.utils; import android.content.ContentValues; import android.content.Context; import android.database.sqlite.SQLiteDatabase; public class InsertSqlite { private SQLiteDatabase sd; public InsertSqlite(Context context){ MySqliteOpenHelper helper=new MySqliteOpenHelper(context); sd=helper.getWritableDatabase(); } public boolean insert(String step,String img){ ContentValues values=new ContentValues(); values.put("step",step); values.put("img",img); long user=sd.insert("user",null,values); if(user!=-1){ return true ; }else{ return false; } } }users_MySqliteOpenHelper
package com.example.yuekao.utils; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; public class MySqliteOpenHelper extends SQLiteOpenHelper{ public MySqliteOpenHelper(Context context) { super(context, "user.db", null, 1); } @Override public void onCreate(SQLiteDatabase sqLiteDatabase) { sqLiteDatabase.execSQL("create table user(id integer primary key autoincrement,step vatchar(20),img varchar(20) )"); } @Override public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) { } }MainActivity
package com.example.yuekao; import android.content.DialogInterface; import android.content.Intent; import android.os.AsyncTask; import android.support.v7.app.AlertDialog; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.BaseAdapter; import android.widget.ImageView; import android.widget.TextView; import com.example.yuekao.bean.MenuInfo; import com.example.yuekao.utils.CheckNet; import com.example.yuekao.utils.GlideImageLoader; import com.example.yuekao.utils.InsertSqlite; import com.example.yuekao.utils.MySqliteOpenHelper; import com.google.gson.Gson; import com.limxing.xlistview.view.XListView; import com.nostra13.universalimageloader.core.DisplayImageOptions; import com.nostra13.universalimageloader.core.ImageLoader; import com.nostra13.universalimageloader.core.ImageLoaderConfiguration; import com.youth.banner.Banner; import java.io.ByteArrayOutputStream; import java.io.InputStream; import java.io.OutputStream; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL; import java.util.ArrayList; import java.util.List; public class MainActivity extends AppCompatActivity implements XListView.IXListViewListener{ private Banner banner; private List<String> urllist=new ArrayList<>(); private XListView xListView; private final int TYPE_0=0,TYPE_1=1; private List<MenuInfo.ResultBean.DataBean.StepsBean> list; private MySqliteOpenHelper helper; private InsertSqlite insertsqlite; private int page=0; private Boolean flag; private MyAdapter adapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); xListView= (XListView) findViewById(R.id.listview); xListView.setXListViewListener(this); xListView.setPullRefreshEnable(true); boolean netWork = new CheckNet().isNetWork(MainActivity.this); if(!netWork){ AlertDialog.Builder builder=new AlertDialog.Builder(MainActivity.this); builder.setMessage("请设置网络") .setNegativeButton("取消",null) .setPositiveButton("确定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i) { Intent it=new Intent(); it.setAction("android.settings.WIRELESS_SETTINGS"); startActivity(it); } }).create().show(); } //Banner banner= (Banner) findViewById(R.id.banner); urllist.add("http://wenwen.soso.com/p/20110201/20110201154011-589875193.jpg"); urllist.add("http://www.dianmeng.com/moban/tupian/200807/200807,0205392592.jpg"); urllist.add("http://p1.so.qhimgs1.com/t01664689c9a012ca31.jpg"); banner.setImageLoader(new GlideImageLoader()); banner.setImages(urllist); banner.start(); getData("http://apis.juhe.cn/cook/query.php"); helper=new MySqliteOpenHelper(this); getSqlite(); } public void getSqlite(){ helper.getWritableDatabase(); insertsqlite=new InsertSqlite(MainActivity.this); // for (int i=0;i<list.size();i++){ // Boolean insert=insertsqlite.insert(list.get(i).getStep(),list.get(i).getImg()); // if(insert){ // System.out.println("添加成功"); // } //} } //异步加载网络数据 public void getData(String path){ new AsyncTask<String, Void, String>() { @Override protected void onPostExecute(String s) { super.onPostExecute(s); if(s!=null){ Gson gson=new Gson(); MenuInfo menuinfo=gson.fromJson(s,MenuInfo.class); list=menuinfo.getResult().getData().get(0).getSteps(); for (int i=0;i<list.size();i++){ Boolean insert=insertsqlite.insert(list.get(i).getStep(),list.get(i).getImg()); if(insert){ System.out.println("添加成功"); } } //xListView.setAdapter(new MyAdapter()); if(adapter==null){ adapter=new MyAdapter(); xListView.setAdapter(adapter); }else{ adapter.add(list,flag); adapter.notifyDataSetChanged(); } xListView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) { Intent it=new Intent(MainActivity.this,SecondActivity.class); it.putExtra("step",list.get(i-1).getStep()); it.putExtra("img",list.get(i-1).getImg()); startActivity(it); } }); } } @Override protected String doInBackground(String... strings) { try { String path=strings[0]; URL url=new URL(path); HttpURLConnection connection= (HttpURLConnection) url.openConnection(); connection.setRequestMethod("POST"); OutputStream os=connection.getOutputStream(); os.write(("key=4866477692b8491f120e3608db277cb0&menu=红烧肉&rn="+page).getBytes()); os.flush(); int code=connection.getResponseCode(); if(code==HttpURLConnection.HTTP_OK){ InputStream is=connection.getInputStream(); ByteArrayOutputStream baos=new ByteArrayOutputStream(); int len=0; byte[] buffer=new byte[1024]; while ((len=is.read(buffer))!=-1){ baos.write(buffer,0,len); } is.close(); baos.close(); return baos.toString(); } } catch (Exception e) { e.printStackTrace(); } return null; } }.execute(path); } @Override public void onRefresh() { ++page; getData("http://apis.juhe.cn/cook/query.php"); flag=true; xListView.stopRefresh(true); } @Override public void onLoadMore() { ++page; getData("http://apis.juhe.cn/cook/query.php"); flag=false; xListView.stopLoadMore(); } class MyAdapter extends BaseAdapter{ public void add(List<MenuInfo.ResultBean.DataBean.StepsBean> step,boolean flag){ for (MenuInfo.ResultBean.DataBean.StepsBean steps:step) { if(flag){ list.add(0,steps); }else{ list.add(steps); } } } @Override public int getCount() { return list.size(); } @Override public Object getItem(int i) { return list.get(i); } @Override public long getItemId(int i) { return i; } @Override public int getViewTypeCount() { return 2; } @Override public int getItemViewType(int position) { if(position%2==0){ return TYPE_0; }else{ return TYPE_1; } } @Override public View getView(int i, View view, ViewGroup viewGroup) { int type=getItemViewType(i); ViewHolder01 holder01 = null; ViewHolder02 holder02=null; switch (type){ case 0: if(view==null){ holder01=new ViewHolder01(); view=View.inflate(MainActivity.this,R.layout.item01,null); holder01.ivIcon01=view.findViewById(R.id.ivIcon01); holder01.tvContent01=view.findViewById(R.id.tvContent01); view.setTag(holder01); }else{ holder01= (ViewHolder01) view.getTag(); } break; case 1: if(view==null){ holder02=new ViewHolder02(); view=View.inflate(MainActivity.this,R.layout.item02,null); holder02.ivIvon02=view.findViewById(R.id.ivIcon02); holder02.tvContent02=view.findViewById(R.id.tvContent02); view.setTag(holder02); }else{ holder02= (ViewHolder02) view.getTag(); } break; } switch (type){ case 0: holder01.tvContent01.setText(list.get(i).getStep()); ImageLoaderConfiguration con01=new ImageLoaderConfiguration.Builder(MainActivity.this).build(); ImageLoader.getInstance().init(con01); DisplayImageOptions option01=new DisplayImageOptions.Builder() .build(); ImageLoader.getInstance().displayImage(list.get(i).getImg(),holder01.ivIcon01,option01); break; case 1: holder02.tvContent02.setText(list.get(i).getStep()); ImageLoaderConfiguration con02=new ImageLoaderConfiguration.Builder(MainActivity.this).build(); ImageLoader.getInstance().init(con02); DisplayImageOptions option02=new DisplayImageOptions.Builder() .build(); ImageLoader.getInstance().displayImage(list.get(i).getImg(),holder02.ivIvon02,option02); break; } return view; } } class ViewHolder01{ ImageView ivIcon01; TextView tvContent01; } class ViewHolder02{ ImageView ivIvon02; TextView tvContent02; } }SecondActivity
package com.example.yuekao; import android.content.Intent; import android.graphics.Bitmap; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.widget.ImageView; import android.widget.TextView; import com.nostra13.universalimageloader.core.DisplayImageOptions; import com.nostra13.universalimageloader.core.ImageLoader; public class SecondActivity extends AppCompatActivity { private ImageView imageView; private TextView textView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.second_activity); imageView= (ImageView) findViewById(R.id.imageview); textView= (TextView) findViewById(R.id.textview); Intent intent=getIntent(); Bundle bundle=intent.getExtras(); String step=bundle.getString("step"); String img=bundle.getString("img"); textView.setText(step); DisplayImageOptions options=new DisplayImageOptions.Builder() .build(); ImageLoader.getInstance().displayImage(img,imageView,options); } }