700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > Android入门小项目--微信登录界面源码(倒计时 fragement切换 activity信息传递)

Android入门小项目--微信登录界面源码(倒计时 fragement切换 activity信息传递)

时间:2020-09-07 18:19:02

相关推荐

Android入门小项目--微信登录界面源码(倒计时 fragement切换 activity信息传递)

微信登录的完全源码,复制粘贴即可使用

作为Android学习的入门,一次性搞定Android的布局,让你的view层畅通无阻

手机界面

插入数据线,将手机调入开发者模式的usb调试,即可进行手机调试安装运行该APP

手机号登录

代码实现:

MainActivity.java文件

public class MainActivity extends AppCompatActivity {private Button nextButton;private EditText editText;private TextView textView;/** Called when the activity is first created. */@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);OnClick onClick=new OnClick();nextButton=findViewById(R.id.next);editText=findViewById(R.id.phone);nextButton.setOnClickListener(onClick);textView=findViewById(R.id.nextx);textView.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {Intent intent = new Intent();//// 为Intent设置Action、Category属性intent.setAction(Intent.ACTION_MAIN);// "android.intent.action.MAIN"intent.addCategory(Intent.CATEGORY_HOME); //"android.intent.category.HOME"startActivity(intent);}});}private class OnClick implements View.OnClickListener {@Overridepublic void onClick(View v) {if(editText.getText().length()==11){Intent i = new Intent();i.setClass(MainActivity.this , LoginActivity.class);i.putExtra("phone",editText.getText().toString());startActivity(i);}else {Toast.makeText(MainActivity.this, "提示的内容", Toast.LENGTH_LONG).show();}}}}

activity_main.xml文件内容

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="/apk/res/android"xmlns:app="/apk/res-auto"xmlns:tools="/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"tools:context="com.example.wechatlogin.MainActivity"><TextViewandroid:id="@+id/nextx"android:layout_width="40dp"android:layout_height="40dp"android:paddingLeft="10dp"android:layout_marginBottom="20dp"android:text="×"android:textSize="29sp" /><TextViewandroid:layout_width="match_parent"android:layout_height="50dp"android:layout_marginTop="10dp"android:paddingLeft="10dp"android:text="手机号登录"android:textSize="29sp" /><LinearLayoutandroid:layout_width="fill_parent"android:layout_height="50dp"android:paddingTop="20dp"android:gravity="left"android:orientation="horizontal"><TextViewandroid:layout_width="100dp"android:layout_height="50dp"android:paddingLeft="10dp"android:text="国家/地区"android:textSize="18sp" /><TextViewandroid:layout_width="200dp"android:layout_height="50dp"android:paddingLeft="10dp"android:text="中国大陆(+86)"android:textColor="#11E811"android:textSize="18sp" /></LinearLayout><LinearLayoutandroid:orientation="horizontal"android:layout_width="match_parent"android:layout_height="58dp"android:layout_marginRight="8dp"android:layout_marginBottom="20dp"><TextViewandroid:layout_width="100dp"android:layout_height="match_parent"android:paddingLeft="10dp"android:layout_marginRight="10dp"android:paddingTop="15dp"android:text="手机号"android:textSize="18sp" /><EditTextandroid:id="@+id/phone"android:layout_width="310dp"android:layout_height="match_parent"android:paddingTop="8dp"android:hint="请输入目的地" /></LinearLayout><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:paddingLeft="10dp"android:layout_marginBottom="10dp"android:text="用微信号/QQ号/邮箱登录"android:textSize="14sp" /><Buttonandroid:id="@+id/next"android:layout_width="match_parent"android:layout_height="wrap_content"android:background="#0FC814"android:text="下一步"android:layout_marginLeft="10dp"android:layout_marginRight="10dp"android:paddingTop="10dp"android:paddingBottom="10dp"android:textColor="#FFFFFF" /><TextViewandroid:layout_width="match_parent"android:layout_height="wrap_content"android:gravity="center_horizontal"android:layout_marginTop="400dp"android:paddingTop="10dp"android:text="找回密码 | 紧急冻结 | 微信安全中心" /></LinearLayout>

验证码登录(包含倒计时、framement切换)

loginActivity.java文件

public class LoginActivity extends AppCompatActivity {private OnClick onClick;private EditText phoneEdit;private EditText passEdit;private EditText verifyEdit;private Button verifyButton;private Button loginButton;private TextView timeView;private LinearLayout passLinear;private LinearLayout verifyLinear;private RelativeLayout replaceVerify;private RelativeLayout replacePass;private String phone;private CountDownTimer verifyTime;private TextView passView;private TextView textView;private TextView textFView;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_login);onClick=new OnClick();phoneEdit=findViewById(R.id.loginphone);verifyEdit=findViewById(R.id.verifylogin);verifyButton=findViewById(R.id.verifybtn);loginButton=findViewById(R.id.loginbut);timeView=findViewById(R.id.timeview);replacePass=findViewById(R.id.replacepass);replaceVerify=findViewById(R.id.replaceverify);textView=findViewById(R.id.textview);passLinear=findViewById(R.id.passlinear);verifyLinear=findViewById(R.id.verilinear);phone=getIntent().getStringExtra("phone");phoneEdit.setText(phone);phoneEdit.setEnabled(false);textFView=findViewById(R.id.loginxx);textFView.setOnClickListener(new View.OnClickListener() {//X的退出@Overridepublic void onClick(View v) {Intent intent = new Intent();//// 为Intent设置Action、Category属性intent.setAction(Intent.ACTION_MAIN);// "android.intent.action.MAIN"intent.addCategory(Intent.CATEGORY_HOME); //"android.intent.category.HOME"startActivity(intent);}});verifyButton.setOnClickListener(onClick);loginButton.setOnClickListener(new View.OnClickListener(){//登录按钮@Overridepublic void onClick(View v) {if(verifyEdit.getText().toString().equals("1234")){Toast.makeText(LoginActivity.this, "登录成功", Toast.LENGTH_LONG).show();Intent intent=new Intent();intent.setClass(LoginActivity.this,WeChatActivity.class);startActivity(intent);}else {new AlertDialog.Builder(LoginActivity.this).setTitle("验证码错误!").setMessage("请输入正确的验证码").setPositiveButton("确定",null).show();}}});textView.setOnClickListener(new View.OnClickListener() {//切换密码按钮@Overridepublic void onClick(View v) {Toast.makeText(LoginActivity.this, "试一次吧", Toast.LENGTH_LONG).show();if(textView.getText().equals("用密码登录")){passLinear.setVisibility(View.INVISIBLE);verifyLinear.setVisibility(View.VISIBLE);textView.setText("用手机号登录");}else {passLinear.setVisibility(View.VISIBLE);verifyLinear.setVisibility(View.INVISIBLE);textView.setText("用密码登录");}}});}private class OnClick implements View.OnClickListener {//验证按钮事件@Overridepublic void onClick(View v) {//退回界面verifyButton.setVisibility(View.INVISIBLE);timeView.setVisibility(View.VISIBLE);// verifyTime=new VerifyTime(verifyButton,timeView,10000,1000);verifyTime = new CountDownTimer(10 * 1000, 1000) {//验证码倒计时@Overridepublic void onTick(long millisUntilFinished) {timeView.setClickable(false);timeView.setText(millisUntilFinished / 1000 + "s后重新获取" );timeView.setBackgroundColor(Color.GRAY);}@Overridepublic void onFinish() {verifyButton.setVisibility(View.VISIBLE);timeView.setVisibility(View.INVISIBLE);}};verifyTime.start();}}}

activity_login.xml文件

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="/apk/res/android"xmlns:app="/apk/res-auto"xmlns:tools="/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"tools:context="com.example.wechatlogin.LoginActivity"><TextViewandroid:id="@+id/loginxx"android:layout_width="40dp"android:layout_height="40dp"android:paddingLeft="10dp"android:layout_marginBottom="20dp"android:text="×"android:textSize="29sp" /><TextViewandroid:layout_width="match_parent"android:layout_height="50dp"android:layout_marginTop="10dp"android:paddingLeft="10dp"android:text="手机号登录"android:textSize="29sp" /><LinearLayoutandroid:layout_width="match_parent"android:layout_height="58dp"android:layout_marginRight="8dp"android:contentDescription="目的地"android:labelFor="@+id/resource"android:orientation="horizontal"><TextViewandroid:layout_width="100dp"android:layout_height="match_parent"android:paddingLeft="10dp"android:paddingTop="10dp"android:text="手机号"android:textSize="18sp" /><EditTextandroid:id="@+id/loginphone"android:layout_width="310dp"android:layout_height="match_parent"android:hint="+8613168090721"android:paddingTop="8dp" /></LinearLayout><RelativeLayoutandroid:id="@+id/replacepass"android:layout_width="match_parent"android:layout_height="58dp"><LinearLayoutandroid:id="@+id/passlinear"android:layout_width="match_parent"android:layout_height="58dp"android:layout_marginRight="8dp"android:labelFor="@+id/resource"android:orientation="horizontal"><TextViewandroid:layout_width="100dp"android:layout_height="match_parent"android:paddingLeft="10dp"android:paddingTop="10dp"android:text="密码"android:textSize="18sp" /><EditTextandroid:id="@+id/loginpass"android:layout_width="310dp"android:layout_height="match_parent"android:hint="请输入密码"android:paddingTop="8dp" /></LinearLayout><LinearLayoutandroid:id="@+id/verilinear"android:layout_width="match_parent"android:layout_height="58dp"android:visibility="invisible"android:layout_marginRight="8dp"android:orientation="horizontal"><TextViewandroid:layout_width="100dp"android:layout_height="match_parent"android:paddingLeft="10dp"android:paddingTop="10dp"android:text="验证码"android:textSize="18sp" /><EditTextandroid:id="@+id/verifylogin"android:layout_width="150dp"android:layout_height="match_parent"android:hint="请输入验证码"android:paddingTop="8dp" /><RelativeLayoutandroid:id="@+id/replaceverify"android:layout_width="150dp"android:layout_height="match_parent"><Buttonandroid:id="@+id/verifybtn"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_marginLeft="10dp"android:layout_marginRight="10dp"android:background="#0FC814"android:paddingTop="10dp"android:paddingBottom="10dp"android:text="获取验证码"android:textColor="#FFFFFF" /><TextViewandroid:id="@+id/timeview"android:layout_width="match_parent"android:layout_height="match_parent"android:gravity="center" /></RelativeLayout></LinearLayout></RelativeLayout><TextViewandroid:id="@+id/textview"android:layout_width="wrap_content"android:layout_height="wrap_content"android:paddingLeft="10dp"android:paddingTop="10dp"android:layout_marginBottom="10dp"android:text="用密码登录"android:textColor="#FF0FC814"android:textSize="14sp" /><Buttonandroid:id="@+id/loginbut"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_marginLeft="10dp"android:layout_marginRight="10dp"android:paddingTop="10dp"android:paddingBottom="10dp"android:text="登录"android:background="#0FC814"android:textColor="#FFFFFF" /><TextViewandroid:layout_width="match_parent"android:layout_height="wrap_content"android:layout_marginTop="400dp"android:gravity="center_horizontal"android:text="找回密码 | 紧急冻结 | 微信安全中心" /></LinearLayout>

倒计时工具类

VerifyTimer.java

package com.example.wechatlogin;import android.graphics.Color;import android.os.CountDownTimer;import android.view.View;import android.widget.Button;import android.widget.TextView;public class VerifyTime extends CountDownTimer {private TextView textView;private Button button;/*** @param millisInFuture The number of millis in the future from the call*to {@link #start()} until the countdown is done and {@link #onFinish()}*is called.* @param countDownInterval The interval along the way to receive*{@link #onTick(long)} callbacks.*/public VerifyTime(Button button,TextView textView, long millisInFuture, long countDownInterval) {super(millisInFuture, countDownInterval);this.textView=textView;this.button=button;}@Overridepublic void onTick(long millisUntilFinished) {textView.setClickable(false);textView.setText(millisUntilFinished / 1000 + "s后重新获取" );textView.setBackgroundColor(Color.GRAY);}@Overridepublic void onFinish() {button.setVisibility(View.VISIBLE);textView.setVisibility(View.INVISIBLE);}}

登录之后的跳转界面(我是随便写的一个空界面)

WeChatActivity.java

public class WeChatActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_we_chat);}}

activity_we_chat.xml

<?xml version="1.0" encoding="utf-8"?><androidx.constraintlayout.widget.ConstraintLayout xmlns:android="/apk/res/android"xmlns:app="/apk/res-auto"xmlns:tools="/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context="com.example.wechatlogin.WeChatActivity"></androidx.constraintlayout.widget.ConstraintLayout>

引用的drawable文件的图片就靠你自己随便添加喽!

这样一个微信登录界面就做好了,有问题随时留言欧!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。