布局

activity_main

<?xml version="1.0" encoding="utf-8"?>
<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"android:orientation="vertical"android:gravity="center"tools:context=".MainActivity"><EditTextandroid:layout_marginTop="40dp"android:layout_width="match_parent"android:layout_height="wrap_content"android:id="@+id/ed_username"android:hint="请输入用户名"android:paddingLeft="30dp"android:background="@drawable/bg_ed"android:paddingTop="10dp"android:paddingBottom="10dp"/><EditTextandroid:layout_marginTop="40dp"android:layout_width="match_parent"android:layout_height="wrap_content"android:background="@drawable/bg_ed"android:id="@+id/ed_password"android:hint="请输入密码"android:paddingLeft="30dp"android:inputType="numberPassword"android:paddingTop="10dp"android:paddingBottom="10dp"/><Buttonandroid:layout_marginTop="40dp"android:layout_width="match_parent"android:layout_height="wrap_content"android:id="@+id/btn_login"android:text="登录"android:background="@drawable/bg_ed"/></LinearLayout>

activity_two

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout 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=".TwoActivity"></android.support.constraint.ConstraintLayout>

activity_home

<?xml version="1.0" encoding="utf-8"?>
<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"android:orientation="vertical"tools:context=".HomeActivity"><RelativeLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:background="@drawable/bg_ed"><ImageViewandroid:id="@+id/img_sao"android:layout_width="wrap_content"android:layout_height="40dp"android:src="@drawable/sao_kind"android:paddingLeft="15dp"android:layout_centerVertical="true"/><EditTextandroid:layout_width="match_parent"android:layout_height="50dp"android:hint="输入关键字搜索..."android:paddingLeft="20dp"android:background="@null"android:layout_toRightOf="@id/img_sao"/></RelativeLayout><android.support.v4.view.ViewPagerandroid:layout_width="match_parent"android:layout_height="300dp"android:id="@+id/vp_banner"/><ListViewandroid:layout_width="match_parent"android:layout_height="match_parent"android:id="@+id/lv_news"/></LinearLayout>

item_news

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="horizontal"><ImageViewandroid:layout_width="100dp"android:layout_height="100dp"android:id="@+id/img_show"/><TextViewandroid:layout_width="match_parent"android:layout_height="wrap_content"android:id="@+id/tv_show"/></LinearLayout>

圆角(drawable)

bg_ed

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"><stroke android:color="#d9138d"android:width="2dp"/><corners android:radius="25dp"/>
</shape>

依赖build.gradle

implementation 'com.squareup.okhttp:okhttp:2.0.0'implementation 'com.google.code.gson:gson:2.2.4'implementation 'cn.yipianfengye.android:zxing-library:2.2'implementation 'com.github.bumptech.glide:glide:4.8.0'annotationProcessor 'com.github.bumptech.glide:compiler:4.8.0'

清单文件

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"package="com.bwie.meng1112"><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" /><uses-permission android:name="android.permission.CAMERA" /><uses-permission android:name="android.permission.FLASHLIGHT" /><uses-feature android:name="android.hardware.camera" /><uses-feature android:name="android.hardware.camera.autofocus" /><uses-permission android:name="android.permission.VIBRATE" /><uses-permission android:name="android.permission.WAKE_LOCK" /><applicationandroid:name=".Application.MyApplication"android:allowBackup="true"android:icon="@mipmap/ic_launcher"android:label="@string/app_name"android:roundIcon="@mipmap/ic_launcher_round"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=".HomeActivity" /><activity android:name=".TwoActivity"></activity></application></manifest>

MainActivity

package com.bwie.meng1112;import android.content.Context;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;import com.bwie.meng1112.bean.LoginBean;
import com.bwie.meng1112.presenter.LoginPresent;
import com.bwie.meng1112.view.IView;public class MainActivity extends AppCompatActivity implements View.OnClickListener,IView {private EditText edUsername;private EditText edPassword;private Button btnLogin;private LoginPresent loginPresent;private LoginBean loginBean;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);initView();initData();}private void initData() {loginPresent = new LoginPresent();loginPresent.attach(this);loginPresent.isFirst();}private void initView() {edUsername = findViewById(R.id.ed_username);edPassword = findViewById(R.id.ed_password);btnLogin = findViewById(R.id.btn_login);btnLogin.setOnClickListener(this);}@Overridepublic void onClick(View v) {switch (v.getId()) {case R.id.btn_login:loginPresent.check();break;}}@Overridepublic void success(Object o) {loginBean = new LoginBean();if (loginBean != null) {// Toast.makeText(this, loginBean.getMsg(), Toast.LENGTH_SHORT).show();Toast.makeText(this, "登陆成功", Toast.LENGTH_SHORT).show();}}@Overridepublic void failed(Exception e) {Toast.makeText(this, "网络异常", Toast.LENGTH_SHORT).show();}@Overridepublic String getUsername() {return edUsername.getText().toString().trim();}@Overridepublic String getPassword() {return edPassword.getText().toString().trim();}@Overridepublic void setUsername(String username) {edUsername.setText(username);}@Overridepublic void setPassword(String password) {edPassword.setText(password);}@Overridepublic void check(boolean isChecked) {if (isChecked) {loginPresent.login("http://www.xieast.com/api/user/login.php");}}@Overridepublic void gotoMain() {Intent intent = new Intent(MainActivity.this, HomeActivity.class);startActivity(intent);finish();}@Overridepublic Context getContext() {return this;}@Overrideprotected void onDestroy() {super.onDestroy();if (loginPresent != null) {loginPresent.detach();}}
}

TwoActivity

package com.bwie.meng1112;import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;public class TwoActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_two);}
}

HomeActivity

package com.bwie.meng1112;import android.content.Intent;
import android.os.Handler;
import android.os.Message;
import android.support.annotation.NonNull;
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.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.Toast;import com.bumptech.glide.Glide;
import com.bwie.meng1112.Adapter.NewsAdapter;
import com.bwie.meng1112.bean.News;
import com.bwie.meng1112.callback.ICallBack;
import com.bwie.meng1112.utils.HttpUtils;
import com.google.gson.reflect.TypeToken;
import com.uuzuche.lib_zxing.activity.CaptureActivity;
import com.uuzuche.lib_zxing.activity.CodeUtils;import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.List;public class HomeActivity extends AppCompatActivity {private ImageView imgSao;private int REQUEST_CODE=1000;private ViewPager vpBanner;private List<String> bannerlist;public static final int FLAG=123;private Handler handler=new Handler(){@Overridepublic void handleMessage(Message msg) {super.handleMessage(msg);if (msg.what==FLAG){int currentItem = vpBanner.getCurrentItem();if (currentItem<bannerlist.size()-1){currentItem++;}else{currentItem=0;}vpBanner.setCurrentItem(currentItem);sendEmptyMessageDelayed(FLAG,2000);}}};private ListView lvNews;private List<News.DataBean> list;private NewsAdapter newsAdapter;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_home);imgSao = findViewById(R.id.img_sao);vpBanner = findViewById(R.id.vp_banner);lvNews = findViewById(R.id.lv_news);list = new ArrayList<>();newsAdapter = new NewsAdapter(this,list);lvNews.setAdapter(newsAdapter);Type type=new TypeToken<News>(){}.getType();HttpUtils.getInstance().get("http://www.xieast.com/api/news/news.php", new ICallBack() {@Overridepublic void onSuccess(Object obj) {News news= (News) obj;if (news!=null){List<News.DataBean> data = news.getData();if (data!=null){list.clear();list.addAll(data);newsAdapter.notifyDataSetChanged();}}}@Overridepublic void onFailed(Exception e) {}},type);lvNews.setOnItemClickListener(new AdapterView.OnItemClickListener() {@Overridepublic void onItemClick(AdapterView<?> parent, View view, int position, long id) {Intent intent=new Intent(HomeActivity.this,TwoActivity.class);startActivity(intent);}});bannerlist = new ArrayList<>();bannerlist.add("http://01.imgmini.eastday.com/mobile/20180512/20180512072505_0fe08f494e7c090764244e3581b3e5ca_5_mwpm_03200403.jpg");bannerlist.add("http://01.imgmini.eastday.com/mobile/20180512/20180512072505_0fe08f494e7c090764244e3581b3e5ca_1_mwpm_03200403.jpg");bannerlist.add("http://06.imgmini.eastday.com/mobile/20180512/20180512_38f5183808987be3783b180740d12a2a_cover_mwpm_03200403.jpg");vpBanner.setAdapter(new PagerAdapter() {@Overridepublic int getCount() {return bannerlist.size();}@Overridepublic boolean isViewFromObject(@NonNull View view, @NonNull Object object) {return view==object;}@NonNull@Overridepublic Object instantiateItem(@NonNull ViewGroup container, int position) {ImageView img=new ImageView(HomeActivity.this);Glide.with(HomeActivity.this).load(bannerlist.get(position)).into(img);container.addView(img);return img;}@Overridepublic void destroyItem(@NonNull ViewGroup container, int position, @NonNull Object object) {container.removeView((View) object);}});handler.sendEmptyMessageDelayed(FLAG,2000);imgSao.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {Intent intent = new Intent(HomeActivity.this, CaptureActivity.class);startActivityForResult(intent, REQUEST_CODE);}});}@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {super.onActivityResult(requestCode, resultCode, data);if (requestCode == REQUEST_CODE) {//处理扫描结果(在界面上显示)if (null != data) {Bundle bundle = data.getExtras();if (bundle == null) {return;}if (bundle.getInt(CodeUtils.RESULT_TYPE) == CodeUtils.RESULT_SUCCESS) {String result = bundle.getString(CodeUtils.RESULT_STRING);Toast.makeText(this, "解析结果:" + result, Toast.LENGTH_LONG).show();} else if (bundle.getInt(CodeUtils.RESULT_TYPE) == CodeUtils.RESULT_FAILED) {Toast.makeText(HomeActivity.this, "解析二维码失败", Toast.LENGTH_LONG).show();}}}}}

Adapter   →NewsAdapter

package com.bwie.meng1112.Adapter;import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;import com.bumptech.glide.Glide;
import com.bwie.meng1112.R;
import com.bwie.meng1112.bean.News;import java.util.List;public class NewsAdapter extends BaseAdapter{private Context context;private List<News.DataBean> list;private ImageView imgShow;private TextView tvShow;public NewsAdapter(Context context, List<News.DataBean> list) {this.context = context;this.list = list;}@Overridepublic int getCount() {return list.size();}@Overridepublic Object getItem(int position) {return list.get(position);}@Overridepublic long getItemId(int position) {return position;}@Overridepublic View getView(int position, View convertView, ViewGroup parent) {ViewHolder holder=null;if (convertView==null){holder=new ViewHolder();convertView=View.inflate(context, R.layout.item_news,null);holder. imgShow = convertView.findViewById(R.id.img_show);holder. tvShow = convertView.findViewById(R.id.tv_show);convertView.setTag(holder);}else{holder= (ViewHolder) convertView.getTag();}Glide.with(context).load(list.get(position).getThumbnail_pic_s()).into(holder.imgShow);holder.tvShow.setText(list.get(position).getTitle());return convertView;}class ViewHolder{ImageView imgShow;TextView tvShow;}
}

Application→MyApplication

package com.bwie.meng1112.Application;import android.app.Application;import com.uuzuche.lib_zxing.activity.ZXingLibrary;public class MyApplication  extends Application{@Overridepublic void onCreate() {super.onCreate();ZXingLibrary.initDisplayOpinion(this);}
}

bean→LoginBean

package com.bwie.meng1112.bean;public class LoginBean {/*** msg : 登录成功* code : 100* data : {"id":1,"name":"admin","mobile":13800138000}*/private String msg;private int code;private DataBean data;public String getMsg() {return msg;}public void setMsg(String msg) {this.msg = msg;}public int getCode() {return code;}public void setCode(int code) {this.code = code;}public DataBean getData() {return data;}public void setData(DataBean data) {this.data = data;}public static class DataBean {/*** id : 1* name : admin* mobile : 13800138000*/private int id;private String name;private long mobile;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public long getMobile() {return mobile;}public void setMobile(long mobile) {this.mobile = mobile;}}
}

bean→News

package com.bwie.meng1112.bean;import java.util.List;public class News {/*** msg : 成功的返回* code : 1* data : [{"uniquekey":"1326bf3c4505783d4a964f81b6220e9d","title":"美国被特朗普坑惨了!又有3个铁杆盟友公开唱对台戏!","date":"2018-05-12 07:25","category":"头条","author_name":"大国军情","url":"http://mini.eastday.com/mobile/180512072544020.html","thumbnail_pic_s":"http://04.imgmini.eastday.com/mobile/20180512/20180512_fe1bf1b6ec00098f9455c84dc81e6763_cover_mwpm_03200403.jpg","thumbnail_pic_s02":"http://04.imgmini.eastday.com/mobile/20180512/20180512_3f636fca330f2311583896aed3185196_cover_mwpm_03200403.jpg","thumbnail_pic_s03":"http://04.imgmini.eastday.com/mobile/20180512/20180512_793fab03dadcd417bf2d8e5e1e48a0f5_cover_mwpm_03200403.jpg"},{"uniquekey":"9db153b507c10bbbed1d26c29c030eef","title":"第71届戛纳电影节:贾樟柯电影《江湖儿女》首映","date":"2018-05-12 07:25","category":"头条","author_name":"新华网","url":"http://mini.eastday.com/mobile/180512072505095.html","thumbnail_pic_s":"http://01.imgmini.eastday.com/mobile/20180512/20180512072505_0fe08f494e7c090764244e3581b3e5ca_5_mwpm_03200403.jpg","thumbnail_pic_s02":"http://01.imgmini.eastday.com/mobile/20180512/20180512072505_0fe08f494e7c090764244e3581b3e5ca_1_mwpm_03200403.jpg","thumbnail_pic_s03":"http://01.imgmini.eastday.com/mobile/20180512/20180512072505_0fe08f494e7c090764244e3581b3e5ca_3_mwpm_03200403.jpg"},{"uniquekey":"4f47eb31b188cfa90881260bb2b11aa8","title":"以色列发射60枚火箭弹对伊朗进行报复,中东小霸王称号保不住了","date":"2018-05-12 07:24","category":"头条","author_name":"遇见优佳","url":"http://mini.eastday.com/mobile/180512072412903.html","thumbnail_pic_s":"http://06.imgmini.eastday.com/mobile/20180512/20180512_38f5183808987be3783b180740d12a2a_cover_mwpm_03200403.jpg","thumbnail_pic_s02":"http://06.imgmini.eastday.com/mobile/20180512/20180512_a3d9f98eb0e3fe36574581f00fa0f898_cover_mwpm_03200403.jpg","thumbnail_pic_s03":"http://06.imgmini.eastday.com/mobile/20180512/20180512_37fa1339af2e64cfd2dc85191950e8ba_cover_mwpm_03200403.jpg"},{"uniquekey":"a3ef77503b9924d7ad6957a5af5da5d1","title":"苏丹驻华大使送别招待会在公共外交文化交流中心举行","date":"2018-05-12 07:22","category":"头条","author_name":"国际在线","url":"http://mini.eastday.com/mobile/180512072229596.html","thumbnail_pic_s":"http://00.imgmini.eastday.com/mobile/20180512/20180512072229_a296d945ae7fe08eed7d78060ce3f5c2_6_mwpm_03200403.jpg","thumbnail_pic_s02":"http://00.imgmini.eastday.com/mobile/20180512/20180512072229_a296d945ae7fe08eed7d78060ce3f5c2_7_mwpm_03200403.jpg","thumbnail_pic_s03":"http://00.imgmini.eastday.com/mobile/20180512/20180512072229_a296d945ae7fe08eed7d78060ce3f5c2_5_mwpm_03200403.jpg"},{"uniquekey":"b447b3941c73a35e587273a8a1b05c2d","title":"十九届三中全会以来推进党和国家机构改革述评","date":"2018-05-12 07:17","category":"头条","author_name":"中国新闻网","url":"http://mini.eastday.com/mobile/180512071745564.html","thumbnail_pic_s":"http://00.imgmini.eastday.com/mobile/20180512/20180512071745_6accdc1c2a1356851f0bf51247a8f256_9_mwpm_03200403.jpg","thumbnail_pic_s02":"http://00.imgmini.eastday.com/mobile/20180512/20180512071745_6accdc1c2a1356851f0bf51247a8f256_8_mwpm_03200403.jpg","thumbnail_pic_s03":"http://00.imgmini.eastday.com/mobile/20180512/20180512071745_6accdc1c2a1356851f0bf51247a8f256_4_mwpm_03200403.jpg"},{"uniquekey":"fc91bd75121e2e84a6cb3d239ddb9846","title":"太反常!特朗普声称退出伊核协议以来,伊朗的表现让美军不适应","date":"2018-05-12 07:15","category":"头条","author_name":"阿尔法军事","url":"http://mini.eastday.com/mobile/180512071539046.html","thumbnail_pic_s":"http://01.imgmini.eastday.com/mobile/20180512/20180512_85e54ca8649794d2c3fdf06faf04fa87_cover_mwpm_03200403.jpg","thumbnail_pic_s02":"http://01.imgmini.eastday.com/mobile/20180512/20180512_e8df98afa3707e436d1793e66d5bc063_cover_mwpm_03200403.jpg","thumbnail_pic_s03":"http://01.imgmini.eastday.com/mobile/20180512/20180512_a1d1e3735f424eba66244a7842b2f7bf_cover_mwpm_03200403.jpg"},{"uniquekey":"ebed0b6a189873fa375a47ee8463c9be","title":"沪正在全面消除无证餐饮店铺 \u201c共享餐厅\u201d最快6月运营","date":"2018-05-12 07:13","category":"头条","author_name":"东方网","url":"http://mini.eastday.com/mobile/180512071324017.html","thumbnail_pic_s":"http://06.imgmini.eastday.com/mobile/20180512/20180512071324_ae237ccc4fcee20ec4909588b5b7609f_1_mwpm_03200403.jpg"},{"uniquekey":"8a88eb5466a46cf6d975579ccb658e29","title":"特朗普嘲讽奥巴马:他花18亿救人,我让朝鲜免费放人","date":"2018-05-12 07:09","category":"头条","author_name":"解放网","url":"http://mini.eastday.com/mobile/180512070940666.html","thumbnail_pic_s":"http://05.imgmini.eastday.com/mobile/20180512/20180512070940_3108dd32b82c16f350b949340f95a647_1_mwpm_03200403.jpg"},{"uniquekey":"6113c546a13e9292ced28b0199a23108","title":"身在国外,这五点我必须说清楚!","date":"2018-05-12 07:03","category":"头条","author_name":"新华网","url":"http://mini.eastday.com/mobile/180512070344831.html","thumbnail_pic_s":"http://02.imgmini.eastday.com/mobile/20180512/20180512070344_7f0366d60dea69d79c1f0432600b5f20_4_mwpm_03200403.jpg","thumbnail_pic_s02":"http://02.imgmini.eastday.com/mobile/20180512/20180512070344_7f0366d60dea69d79c1f0432600b5f20_2_mwpm_03200403.jpg","thumbnail_pic_s03":"http://02.imgmini.eastday.com/mobile/20180512/20180512070344_7f0366d60dea69d79c1f0432600b5f20_3_mwpm_03200403.jpg"},{"uniquekey":"ca9d43ed0e6875692164bea6cc898065","title":"再\u201c读\u201d汶川|究竟是一种什么样的力量,让中国人如此勇敢地面对可怕的灾难?","date":"2018-05-12 06:59","category":"头条","author_name":"解放网","url":"http://mini.eastday.com/mobile/180512065922743.html","thumbnail_pic_s":"http://03.imgmini.eastday.com/mobile/20180512/20180512065922_e367e5443f66512176376bd05ed65f9a_1_mwpm_03200403.jpg"},{"uniquekey":"da0a52bc92c10e81d16a4e728701cffc","title":"十年对比:通往汶川的唯一通道十年之变","date":"2018-05-12 06:50","category":"头条","author_name":"中国网","url":"http://mini.eastday.com/mobile/180512065018882.html","thumbnail_pic_s":"http://03.imgmini.eastday.com/mobile/20180512/20180512065018_01abef975bd32ccc728ac4e4e6a7ec6e_2_mwpm_03200403.jpg","thumbnail_pic_s02":"http://03.imgmini.eastday.com/mobile/20180512/20180512065018_9cfcb8c2869e997daf379bb7ce19180e_6_mwpm_03200403.jpg","thumbnail_pic_s03":"http://03.imgmini.eastday.com/mobile/20180512/20180512065018_0b79422343a8c1c37ec8121cd0c7a11c_5_mwpm_03200403.jpg"},{"uniquekey":"fa498034a3f9cd9fa2f5e0a2fbfd4da4","title":"全国第一!上海的马路边,应该容得下更多街头艺人","date":"2018-05-12 06:49","category":"头条","author_name":"解放网","url":"http://mini.eastday.com/mobile/180512064903130.html","thumbnail_pic_s":"http://05.imgmini.eastday.com/mobile/20180512/20180512064903_6a2e203b71d2710aded08d300ab29eeb_1_mwpm_03200403.jpg"},{"uniquekey":"e1b21b938c2fc3a7345ca5bd93ab3d8e","title":"被吐槽演技差的宋茜这回动真格的,吴亦凡黄子韬们也跟上节奏了!","date":"2018-05-12 06:46","category":"头条","author_name":"网易越娱乐","url":"http://mini.eastday.com/mobile/180512064621690.html","thumbnail_pic_s":"http://04.imgmini.eastday.com/mobile/20180512/20180512064621_bab229c7b39e6fa7e59dd27703ddfb38_2_mwpm_03200403.jpg","thumbnail_pic_s02":"http://04.imgmini.eastday.com/mobile/20180512/20180512064621_bab229c7b39e6fa7e59dd27703ddfb38_3_mwpm_03200403.jpg","thumbnail_pic_s03":"http://04.imgmini.eastday.com/mobile/20180512/20180512064621_bab229c7b39e6fa7e59dd27703ddfb38_1_mwpm_03200403.jpg"},{"uniquekey":"526a4c110dedc726aa4e53afbcbea23d","title":"美国重新制裁伊朗 德国经济界担忧遭连累","date":"2018-05-12 06:38","category":"头条","author_name":"解放网","url":"http://mini.eastday.com/mobile/180512063843828.html","thumbnail_pic_s":"http://09.imgmini.eastday.com/mobile/20180512/20180512063843_59894e298ee0432f1d141cb347f356c8_1_mwpm_03200403.jpg"},{"uniquekey":"e0a21ea66ac913345a3ddeef2de9acea","title":"马哈蒂尔宣布特赦前副总理安华 二十年前送其入狱","date":"2018-05-12 06:38","category":"头条","author_name":"解放网","url":"http://mini.eastday.com/mobile/180512063843353.html","thumbnail_pic_s":"http://06.imgmini.eastday.com/mobile/20180512/20180512063843_b6081361df8e6cd58b6d52035cb3ee3a_1_mwpm_03200403.jpg"},{"uniquekey":"06c93effa61afee08c768604e97de4d2","title":"日本二手店惊现陈水扁竞选外套 台网友酸:穿上之后手都不会抖了","date":"2018-05-12 06:38","category":"头条","author_name":"解放网","url":"http://mini.eastday.com/mobile/180512063843086.html","thumbnail_pic_s":"http://03.imgmini.eastday.com/mobile/20180512/20180512063843_a198728f6df54faf3ac82f9eff70a209_1_mwpm_03200403.jpg"},{"uniquekey":"ed31cf77aaf7073879898beaed6b172d","title":"10年过去了,他们还好吗","date":"2018-05-12 06:19","category":"头条","author_name":"人民网","url":"http://mini.eastday.com/mobile/180512061919917.html","thumbnail_pic_s":"http://04.imgmini.eastday.com/mobile/20180512/20180512061919_eae4ad26c428cc7f961a1d6cf6e4264e_2_mwpm_03200403.jpg","thumbnail_pic_s02":"http://04.imgmini.eastday.com/mobile/20180512/20180512061919_eae4ad26c428cc7f961a1d6cf6e4264e_7_mwpm_03200403.jpg","thumbnail_pic_s03":"http://04.imgmini.eastday.com/mobile/20180512/20180512061919_eae4ad26c428cc7f961a1d6cf6e4264e_4_mwpm_03200403.jpg"},{"uniquekey":"fa422c905b7767276acd999a9439b43c","title":"新闻早餐:打捞人员发现疑似杀空姐嫌犯尸体 将做DNA鉴定","date":"2018-05-12 06:15","category":"头条","author_name":"新闻早餐","url":"http://mini.eastday.com/mobile/180512061559294.html","thumbnail_pic_s":"http://02.imgmini.eastday.com/mobile/20180512/20180512_418566db5b32e600bc27d0bc8cb0a6a6_cover_mwpm_03200403.jpg","thumbnail_pic_s02":"http://02.imgmini.eastday.com/mobile/20180512/20180512_8d766fd5086f98ec8741ed44505ce35c_cover_mwpm_03200403.jpg","thumbnail_pic_s03":"http://02.imgmini.eastday.com/mobile/20180512/20180512_509df6c0c45109a6989bc86c663d02cd_cover_mwpm_03200403.jpg"},{"uniquekey":"92ee0d2a31867a8f215b0517d99a9409","title":"难忘救援经历 回忆激励前行 ","date":"2018-05-12 06:07","category":"头条","author_name":"大众网","url":"http://mini.eastday.com/mobile/180512060745166.html","thumbnail_pic_s":"http://07.imgmini.eastday.com/mobile/20180512/20180512060745_78550703b206b53ace6a0c51b1d737d4_1_mwpm_03200403.jpg"},{"uniquekey":"164f8861bd6628737684dcff49f376d2","title":"回望汶川(下)| 房子差不多修好了,那么人呢?","date":"2018-05-12 06:07","category":"头条","author_name":"解放网","url":"http://mini.eastday.com/mobile/180512060707642.html","thumbnail_pic_s":"http://04.imgmini.eastday.com/mobile/20180512/20180512060707_4f667adcf6d62ec0b177add95ac037e9_1_mwpm_03200403.jpg"},{"uniquekey":"a8832fbcd574b6675c0cf3a0d37937bc","title":"竟为\u201c两岸一家亲\u201d向深绿道歉,谋求连任台北市长的柯文哲向蔡英文\u201c折腰认错\u201d","date":"2018-05-12 06:07","category":"头条","author_name":"解放网","url":"http://mini.eastday.com/mobile/180512060707366.html","thumbnail_pic_s":"http://07.imgmini.eastday.com/mobile/20180512/20180512060707_72a977a668e79cc22e88db944b2871ce_1_mwpm_03200403.jpg"},{"uniquekey":"92f7d43683b6d8b300ecb8888148d70e","title":"【钩沉】\u201c摸着石头过河\u201d,是邓小平的原创吗","date":"2018-05-12 06:07","category":"头条","author_name":"解放网","url":"http://mini.eastday.com/mobile/180512060706828.html","thumbnail_pic_s":"http://09.imgmini.eastday.com/mobile/20180512/20180512060706_82f81c098284dc2144d47776df34b478_1_mwpm_03200403.jpg"},{"uniquekey":"4ca3a79d5762fb1d130daeadfb1f7be9","title":"忠诚守护 老人被埋170小时 家中狗狗挣脱绳索陪伴不离","date":"2018-05-12 06:01","category":"头条","author_name":"中青在线","url":"http://mini.eastday.com/mobile/180512060138223.html","thumbnail_pic_s":"http://03.imgmini.eastday.com/mobile/20180512/20180512060138_731141065c8389f053e98fd09959e9b2_2_mwpm_03200403.jpg","thumbnail_pic_s02":"http://03.imgmini.eastday.com/mobile/20180512/20180512060138_731141065c8389f053e98fd09959e9b2_1_mwpm_03200403.jpg","thumbnail_pic_s03":"http://03.imgmini.eastday.com/mobile/20180512/20180512060138_731141065c8389f053e98fd09959e9b2_3_mwpm_03200403.jpg"},{"uniquekey":"e93a1d8243a9037b1da76adc7a793739","title":"西安再添世界500强企业 将为大西安人才发展战略提供新动能","date":"2018-05-12 05:37","category":"头条","author_name":"人民网","url":"http://mini.eastday.com/mobile/180512053736878.html","thumbnail_pic_s":"http://07.imgmini.eastday.com/mobile/20180512/20180512053736_8f66fb9da7fc1f943a0ce8e61a694391_3_mwpm_03200403.jpg","thumbnail_pic_s02":"http://07.imgmini.eastday.com/mobile/20180512/20180512053736_8f66fb9da7fc1f943a0ce8e61a694391_4_mwpm_03200403.jpg","thumbnail_pic_s03":"http://07.imgmini.eastday.com/mobile/20180512/20180512053736_8f66fb9da7fc1f943a0ce8e61a694391_1_mwpm_03200403.jpg"},{"uniquekey":"b006b13ae3d14707f881eb92fc914ecd","title":"高速车道突然飞来轮胎 司机握紧方向盘救了一车游客","date":"2018-05-12 05:36","category":"头条","author_name":"中国新闻网","url":"http://mini.eastday.com/mobile/180512053627582.html","thumbnail_pic_s":"http://02.imgmini.eastday.com/mobile/20180512/20180512053627_9945660161d740d7ed793166d7227a70_1_mwpm_03200403.jpg","thumbnail_pic_s02":"http://02.imgmini.eastday.com/mobile/20180512/20180512053627_9945660161d740d7ed793166d7227a70_2_mwpm_03200403.jpg"},{"uniquekey":"94eee6750d18b56e69e7f21639e3e5f1","title":"早读|上海将筹建\u201c中共一大纪念馆\u201d","date":"2018-05-12 05:36","category":"头条","author_name":"解放网","url":"http://mini.eastday.com/mobile/180512053610949.html","thumbnail_pic_s":"http://01.imgmini.eastday.com/mobile/20180512/20180512053610_4bc3792a8ae8dfa412a4da9f45478910_1_mwpm_03200403.jpg"},{"uniquekey":"fb1c5b67794834d0a6103a20b64854c0","title":"中国电子商务快速发展 给世界带来巨大商机","date":"2018-05-12 05:23","category":"头条","author_name":"西安晚报","url":"http://mini.eastday.com/mobile/180512052309026.html","thumbnail_pic_s":"http://02.imgmini.eastday.com/mobile/20180512/20180512052309_d81eabc5f596d49d94d73f8b3fbc6a8c_1_mwpm_03200403.jpg"},{"uniquekey":"4aa30f5d94850ca14205845bc5847c5a","title":"\u201c竹简\u201d寄情 感恩父母","date":"2018-05-12 05:15","category":"头条","author_name":"大众网","url":"http://mini.eastday.com/mobile/180512051537520.html","thumbnail_pic_s":"http://04.imgmini.eastday.com/mobile/20180512/20180512051537_1f79912ff681c7cc4a96a6f97f967479_1_mwpm_03200403.jpg"},{"uniquekey":"e491de85803b55c5412ad0fbb2346a87","title":"北京海运进出口货物七成走天津","date":"2018-05-12 05:07","category":"头条","author_name":"光明网","url":"http://mini.eastday.com/mobile/180512050734360.html","thumbnail_pic_s":"http://09.imgmini.eastday.com/mobile/20180512/20180512050734_de8eae16975f2ddf8223b7c549096c70_3_mwpm_03200403.jpg","thumbnail_pic_s02":"http://09.imgmini.eastday.com/mobile/20180512/20180512050734_de8eae16975f2ddf8223b7c549096c70_1_mwpm_03200403.jpg","thumbnail_pic_s03":"http://09.imgmini.eastday.com/mobile/20180512/20180512050734_de8eae16975f2ddf8223b7c549096c70_2_mwpm_03200403.jpg"},{"uniquekey":"2f2995abb898f94aeacecd6537013404","title":"生活中诱发痔疮的五个原因不可忽略, 痔疮的治疗方法","date":"2018-05-12 04:56","category":"头条","author_name":"凤凰网","url":"http://mini.eastday.com/mobile/180512045657878.html","thumbnail_pic_s":"http://02.imgmini.eastday.com/mobile/20180512/20180512045657_15014004f9669c5aee78579be692dd66_1_mwpm_03200403.jpg","thumbnail_pic_s02":"http://02.imgmini.eastday.com/mobile/20180512/20180512045657_15014004f9669c5aee78579be692dd66_2_mwpm_03200403.jpg"}]*/private String msg;private int code;private List<DataBean> data;public String getMsg() {return msg;}public void setMsg(String msg) {this.msg = msg;}public int getCode() {return code;}public void setCode(int code) {this.code = code;}public List<DataBean> getData() {return data;}public void setData(List<DataBean> data) {this.data = data;}public static class DataBean {/*** uniquekey : 1326bf3c4505783d4a964f81b6220e9d* title : 美国被特朗普坑惨了!又有3个铁杆盟友公开唱对台戏!* date : 2018-05-12 07:25* category : 头条* author_name : 大国军情* url : http://mini.eastday.com/mobile/180512072544020.html* thumbnail_pic_s : http://04.imgmini.eastday.com/mobile/20180512/20180512_fe1bf1b6ec00098f9455c84dc81e6763_cover_mwpm_03200403.jpg* thumbnail_pic_s02 : http://04.imgmini.eastday.com/mobile/20180512/20180512_3f636fca330f2311583896aed3185196_cover_mwpm_03200403.jpg* thumbnail_pic_s03 : http://04.imgmini.eastday.com/mobile/20180512/20180512_793fab03dadcd417bf2d8e5e1e48a0f5_cover_mwpm_03200403.jpg*/private String uniquekey;private String title;private String date;private String category;private String author_name;private String url;private String thumbnail_pic_s;private String thumbnail_pic_s02;private String thumbnail_pic_s03;public String getUniquekey() {return uniquekey;}public void setUniquekey(String uniquekey) {this.uniquekey = uniquekey;}public String getTitle() {return title;}public void setTitle(String title) {this.title = title;}public String getDate() {return date;}public void setDate(String date) {this.date = date;}public String getCategory() {return category;}public void setCategory(String category) {this.category = category;}public String getAuthor_name() {return author_name;}public void setAuthor_name(String author_name) {this.author_name = author_name;}public String getUrl() {return url;}public void setUrl(String url) {this.url = url;}public String getThumbnail_pic_s() {return thumbnail_pic_s;}public void setThumbnail_pic_s(String thumbnail_pic_s) {this.thumbnail_pic_s = thumbnail_pic_s;}public String getThumbnail_pic_s02() {return thumbnail_pic_s02;}public void setThumbnail_pic_s02(String thumbnail_pic_s02) {this.thumbnail_pic_s02 = thumbnail_pic_s02;}public String getThumbnail_pic_s03() {return thumbnail_pic_s03;}public void setThumbnail_pic_s03(String thumbnail_pic_s03) {this.thumbnail_pic_s03 = thumbnail_pic_s03;}}
}

callback→ICallBack

package com.bwie.meng1112.callback;public interface ICallBack {void  onSuccess(Object obj);void  onFailed(Exception e);
}

utils→HttpUtils

package com.bwie.meng1112.utils;import android.os.Handler;import com.bwie.meng1112.callback.ICallBack;
import com.google.gson.Gson;
import com.squareup.okhttp.Call;
import com.squareup.okhttp.Callback;
import com.squareup.okhttp.OkHttpClient;
import com.squareup.okhttp.Request;
import com.squareup.okhttp.Response;import java.io.IOException;
import java.lang.reflect.Type;public class HttpUtils {private  static  volatile  HttpUtils instance;private OkHttpClient client;private Handler handler=new Handler();private HttpUtils(){client=new OkHttpClient();}public static  HttpUtils getInstance(){if (instance==null){synchronized (HttpUtils.class){if (null==instance){instance=new HttpUtils();}}}return  instance;}public void get(String url, final ICallBack callBack, final Type type){Request request=new Request.Builder().get().url(url).build();Call call=client.newCall(request);call.enqueue(new Callback() {@Overridepublic void onFailure(Request request, final IOException e) {handler.post(new Runnable() {@Overridepublic void run() {callBack.onFailed(e);}});}@Overridepublic void onResponse(Response response) throws IOException {String result=response.body().string();Gson gson=new Gson();final Object o = gson.fromJson(result, type);handler.post(new Runnable() {@Overridepublic void run() {callBack.onSuccess(o);}});}});}
}

MVP

model→LoginModel

package com.bwie.meng1112.model;import com.bwie.meng1112.callback.ICallBack;
import com.bwie.meng1112.utils.HttpUtils;import java.lang.reflect.Type;public class LoginModel {public void login(String url, ICallBack callBack, Type type){HttpUtils.getInstance().get(url, callBack, type);}
}

presenter→LoginPresent

package com.bwie.meng1112.presenter;import android.content.Context;
import android.content.SharedPreferences;
import android.text.TextUtils;import com.bwie.meng1112.bean.LoginBean;
import com.bwie.meng1112.callback.ICallBack;
import com.bwie.meng1112.model.LoginModel;
import com.bwie.meng1112.view.IView;
import com.google.gson.reflect.TypeToken;import java.lang.reflect.Type;public class LoginPresent {private IView iv;private LoginModel loginModel;public void attach(IView iv){this.iv=iv;loginModel =new LoginModel();}public void detach(){if (iv!=null){iv=null;}}//检验public void check(){if (TextUtils.isEmpty(iv.getUsername())||TextUtils.isEmpty(iv.getPassword())){iv.check(false);}else{iv.check(true);}}public void  isFirst(){SharedPreferences sp=iv.getContext().getSharedPreferences("config", Context.MODE_PRIVATE);String username=sp.getString("username","");String password=sp.getString("password","");//如果不是第一次登录if (!TextUtils.isEmpty(username)  && !TextUtils.isEmpty(password)){iv.setUsername(username);iv.setPassword(password);}}public void login(String url){final String username=iv.getUsername();final String password=iv.getPassword();url = url.concat("?username=").concat(username).concat("&password=").concat(password);Type type=new TypeToken<LoginBean>(){}.getType();loginModel.login(url, new ICallBack() {@Overridepublic void onSuccess(Object obj) {iv.success(obj);SharedPreferences  sp=iv.getContext().getSharedPreferences("config",Context.MODE_PRIVATE);sp.edit().putString("username",username).putString("password",password).commit();iv.gotoMain();}@Overridepublic void onFailed(Exception e) {iv.failed(e);}},type);}
}

view→IView

package com.bwie.meng1112.view;import android.content.Context;public interface IView<T> {void success(T t);void  failed(Exception e);String getUsername();String getPassword();void setUsername(String username);void setPassword(String password);void check(boolean isChecked);void  gotoMain();Context getContext();}

MVP登录 二维码扫描相关推荐

  1. Windows逆向 微信登录二维码的字符串

    获取微信的登录二维码,网上已有很多教程了,这里稍作总结,大概就以下两种方式: 1.直接获取二维码的图片数据,下载到本地: 2.获取二维码所表示的字符串,利用其它库(比如:libqrencode)来生成 ...

  2. 聊一聊二维码扫描登录原理

    点击上方 好好学java ,选择 星标 公众号 重磅资讯.干货,第一时间送达 今日推荐:2 个月的面试亲身经历告诉大家,如何进入大厂? 扫二维码登录现在比较常见,比如微信.支付宝等 PC 端登录,并且 ...

  3. uniapp中qrcode生成二维码后传的参数不见了_二维码扫描登录,你必须知道的 3 件事...

    作者 | 互联网平头哥 本文经授权转载自互联网平头哥(ID:it_pingtouge) 扫二维码登录现在比较常见,比如微信.支付宝等 PC 端登录,并且好像每款 APP 都支持扫码登录,不搞个扫码登录 ...

  4. Android 应用之二维码扫描登录

    下面介绍二维码扫描登录原理, 首先需要web服务端,和app客户端. web服务端主要工作是生成二维码,检测客户端提交信息正确性,更新网页界面. app客户端主要工作是扫描二维码,提交账户信息(此不是 ...

  5. 微信二维码扫描登录原理解析

    扫二维码登录现在比较常见,比如微信.支付宝等 PC 端登录,并且好像每款 APP 都支持扫码登录. 一,传统项目移动端基于 token 的认证机制 在了解扫码登录原理之前,有必要先了解移动端基于 to ...

  6. Android实现二维码扫描登录网页

    之前写过一个二维码扫描demo,用的Zxing的框架,点击下载,后续扫描二维码中出现一些问题,比如解决压缩图片,调整扫描窗口大小等等.后续单位要求做扫描登录实现,发现难点就是怎么知道你扫描的是这台电脑 ...

  7. 智能玩具 数据采集 首页展示 注册 登录 自动登录 二维码图片

    玩具需求分析 1.语音实时通讯 - 让玩具成为孩子与父母之间沟通的桥梁 分支 建立幼儿社交圈2.积极正面幼教内容 - 让玩具能够播放 父母选定的儿歌,故事,百科,英语- 通过语音识别内容名称 玩具可以 ...

  8. 二维码扫描讲解系统设计方法

    二维码扫描讲解系统设计方法 测试软件平台进入: http://www.cqu-media.top http://www.cqu-media.com/qrcode.aspx http://www.cqu ...

  9. MUI 结合 HTML5+ 实现的二维码扫描功能

    扫码登录的实现原理 原理解释: 接下来就是对于这个服务的详细实现.首先,大概说一下原理:用户打开网站的登录页面的时候,向浏览器的服务器发送获取登录二维码的请求.服务器收到请求后,随机生成一个uuid, ...

最新文章

  1. 没想到,阿里工程师每天必刷的网站是......
  2. android studio visual studio 2015,Visual Studio Emulator for Android
  3. 2.3 使用 dom4j 对 xml文件进行 dom 解析
  4. 七十、SpringBoot整合 Druid数据源
  5. 飞天技术汇“2018云栖大会·上海峰会”专场,等你加入
  6. idea左右切换页面 返回上一次鼠标位置
  7. 获取JQuery UI tabs中被选中的tabs的方法
  8. android intent 视频,Android通过发送Intent播放本地视频和网络视频
  9. 跨境电商如何选择并且下载专用浏览器?电商浏览器下载指南
  10. macOS黑苹果系统镜像恢复版安装教程
  11. 网站没有外链 如何计算权重
  12. 网易云团队前端单元测试技术方案总结,测试人员必备知识
  13. AAC的ADTS头解析
  14. 基础弹幕原理python海龟库
  15. PyTorch学习率 warmup + 余弦退火
  16. windows不能确定用户或计算机名称,Windows10开机时提示“用户名或密码不正确”的解决办法...
  17. Java开发必须会的技能!java页面导出数据到excel
  18. Miktex安装宏包
  19. UE4虚幻引擎UI界面动画制作!
  20. 「码力全开」假如今年公司中秋的月饼由你来设计

热门文章

  1. Unity脚本(三)
  2. hdu 1114 完全背包
  3. AJAX---发送POST请求、Get请求、请求四步、解决低版本的缓存问题
  4. 数据分析案例(二手车)
  5. 什么是SPOOLing?
  6. xargs的用法--linux
  7. 可视门铃全国产化电子元件推荐方案
  8. 后乔布斯时代:三星微软谷歌3大劲敌环伺苹果
  9. yolov5-6.1的完全使用手册,含模型训练测试(可训练自己的数据集)
  10. word分词器、ansj分词器、mmseg4j分词器、ik-analyzer分词器分词效果评估