MVP登录 二维码扫描
布局
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登录 二维码扫描相关推荐
- Windows逆向 微信登录二维码的字符串
获取微信的登录二维码,网上已有很多教程了,这里稍作总结,大概就以下两种方式: 1.直接获取二维码的图片数据,下载到本地: 2.获取二维码所表示的字符串,利用其它库(比如:libqrencode)来生成 ...
- 聊一聊二维码扫描登录原理
点击上方 好好学java ,选择 星标 公众号 重磅资讯.干货,第一时间送达 今日推荐:2 个月的面试亲身经历告诉大家,如何进入大厂? 扫二维码登录现在比较常见,比如微信.支付宝等 PC 端登录,并且 ...
- uniapp中qrcode生成二维码后传的参数不见了_二维码扫描登录,你必须知道的 3 件事...
作者 | 互联网平头哥 本文经授权转载自互联网平头哥(ID:it_pingtouge) 扫二维码登录现在比较常见,比如微信.支付宝等 PC 端登录,并且好像每款 APP 都支持扫码登录,不搞个扫码登录 ...
- Android 应用之二维码扫描登录
下面介绍二维码扫描登录原理, 首先需要web服务端,和app客户端. web服务端主要工作是生成二维码,检测客户端提交信息正确性,更新网页界面. app客户端主要工作是扫描二维码,提交账户信息(此不是 ...
- 微信二维码扫描登录原理解析
扫二维码登录现在比较常见,比如微信.支付宝等 PC 端登录,并且好像每款 APP 都支持扫码登录. 一,传统项目移动端基于 token 的认证机制 在了解扫码登录原理之前,有必要先了解移动端基于 to ...
- Android实现二维码扫描登录网页
之前写过一个二维码扫描demo,用的Zxing的框架,点击下载,后续扫描二维码中出现一些问题,比如解决压缩图片,调整扫描窗口大小等等.后续单位要求做扫描登录实现,发现难点就是怎么知道你扫描的是这台电脑 ...
- 智能玩具 数据采集 首页展示 注册 登录 自动登录 二维码图片
玩具需求分析 1.语音实时通讯 - 让玩具成为孩子与父母之间沟通的桥梁 分支 建立幼儿社交圈2.积极正面幼教内容 - 让玩具能够播放 父母选定的儿歌,故事,百科,英语- 通过语音识别内容名称 玩具可以 ...
- 二维码扫描讲解系统设计方法
二维码扫描讲解系统设计方法 测试软件平台进入: http://www.cqu-media.top http://www.cqu-media.com/qrcode.aspx http://www.cqu ...
- MUI 结合 HTML5+ 实现的二维码扫描功能
扫码登录的实现原理 原理解释: 接下来就是对于这个服务的详细实现.首先,大概说一下原理:用户打开网站的登录页面的时候,向浏览器的服务器发送获取登录二维码的请求.服务器收到请求后,随机生成一个uuid, ...
最新文章
- 没想到,阿里工程师每天必刷的网站是......
- android studio visual studio 2015,Visual Studio Emulator for Android
- 2.3 使用 dom4j 对 xml文件进行 dom 解析
- 七十、SpringBoot整合 Druid数据源
- 飞天技术汇“2018云栖大会·上海峰会”专场,等你加入
- idea左右切换页面 返回上一次鼠标位置
- 获取JQuery UI tabs中被选中的tabs的方法
- android intent 视频,Android通过发送Intent播放本地视频和网络视频
- 跨境电商如何选择并且下载专用浏览器?电商浏览器下载指南
- macOS黑苹果系统镜像恢复版安装教程
- 网站没有外链 如何计算权重
- 网易云团队前端单元测试技术方案总结,测试人员必备知识
- AAC的ADTS头解析
- 基础弹幕原理python海龟库
- PyTorch学习率 warmup + 余弦退火
- windows不能确定用户或计算机名称,Windows10开机时提示“用户名或密码不正确”的解决办法...
- Java开发必须会的技能!java页面导出数据到excel
- Miktex安装宏包
- UE4虚幻引擎UI界面动画制作!
- 「码力全开」假如今年公司中秋的月饼由你来设计