精华内容
下载资源
问答
  • 1.使用到的开发工具为:Eclipse(Java EE),Android Studio,MYSQL 5.7.21; 2.首先在MYSQL数据库建表,我这里使用的数据库可视化操作软件为:navicat premium: 如图: 这里你可以取自己喜欢的数据库名字,...

    1.使用到的开发工具为:Eclipse(Java EE),Android Studio,MYSQL 5.7.21;

    2.首先在MYSQL数据库建表,我这里使用的数据库可视化操作软件为:navicat premium:

    如图:

    这里你可以取自己喜欢的数据库名字,但是为了方便起见,我建议取跟我的一样,当然,phone、email、message和pic这几个字段你可以不添加,因为这个demo里面根本不会使用到。

    2.创建服务器端的项目工程,当你需要做到这个demo时,我已经默认你已经成功搭建好了环境,name进入正题:

    a.工程目录如下:

    记得首先先导入jdbc连接mysql数据库的jar包!!!

    记得也要先配置好tomcat服务器!!!

    jsp页面如下(源代码都在文章后面的链接):

    输入账号为:5555,密码为:5555时(这是之前建表时插入的数据),点击login后:

    这里显示的login successfully!就是服务器返回给android的信息,也就是android端向我们搭建的服务器提交账号密码后返回给android端的信息!

    若输入的账号密码在member中不存在,则:

    这要注意一点,mustLogin是使用到了servlet的知识,其中web.xml配置如下:

    这就是服务器端的项目开发的一个简单的介绍。后面源代码会给出。

    3.Android端的开发:

    工程目录如下:

    页面的话:

    设计的很简单,这里我要说的是我做的只是一个简单的demo,布局比较简单,想要更美观的话可以上网百度一下设置颜色和布局。

    其实android连接服务器并没有想象的那么难,就是提交数据,返回信息这两个方面而已,现在csdn上的代码基本都是很久之前的或者没有详细的讲解,或者源代码的下载积分特别高,我的源代码下载积分,一定是最低的!

    最后贴上登录成功的图片:

    我这是在真机上成功实现了的,具体怎么连接真机实验,你可以百度,度娘真的很管用。

    还有呢就是,如果要实现注册功能的话,这里提供一个思路:其实也挺简单的如果你学会了登录功能的实现,只需要在登录页面中添加一个Button,再新建一个活动,填写注册信息,然后将注册信息提交给服务器,然后再在服务器端新建一个servlet处理接收到的注册信息,也就是将数据插入到我们建好的数据表中,跟登录差不多.......

    最后我建议,如果你看不懂源代码,你可以先上网学习一下httpurlconnection的工作原理。

    最后重申:AndroidTest是服务器端项目,Httptest是Android端项目,别搞混了。有什么不懂的话,可以在评论区给我留言,看到会回复的。

    源代码点击此链接:https://download.csdn.net/download/qq_38442065/10345368

    Navicat数据库可视化操作工具:https://download.csdn.net/download/qq_38442065/10345371

    GitHub:服务器端:https://github.com/Gahui-Liao/AndroidTest.git

                   Android端:https://github.com/Gahui-Liao/HttpTest.git

    展开全文
  • Android Studio实现登录功能

    万次阅读 2018-05-25 23:06:23
    <category android:name="android.intent.category.LAUNCHER" /> android:name=".LoginActivity" android:label="@string/title_activity_login"> 改之后的代码: <activity android:name="....
    • 可以在新建项目的时候选择login模板
    • 也可以新建空白模板后,新建Activity,选择loginActivity来使用login模板
    • 也可以自定义自己的loginActivity

    这里介绍第二种:新建空白模板后,新建Activity,选择loginActivity来使用login模板

    其中涉及到隐私问题,这里把设计逻辑,通过伪代码的形式表达出来:

    1、如果登陆过,则直接进入主界面;没有的话进行下一步;

    2、没有登录过,检查用户之前是否有已经保存了的用户名和密码,若有的话则展示在界面上;

    3、检查用户是否将账号和密码都填写了,若没有的情况下点击登录会提醒用户没有填写信息,若填写了,则进行下一步;

    4、将用户输入的账号和密码与已有的账号和密码对比,如果匹配则进入主页面;(此时将学号和密码保存,检测用户是否将记住密码复选框选定,若选定了,则在以后的登录中进行第二步操作)

     

    但是启动应用的时候,默认登录界面为启动页面:下边应该是你改之前的代码

    <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=".LoginActivity"
        android:label="@string/title_activity_login"></activity>

    改之后的代码:

    <activity android:name=".MainActivity"></activity>
    <activity
        android:name=".LoginActivity"
        android:label="@string/title_activity_login">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

    然后运行代码,默认的界面就是你自己写的登录界面了。

    展开全文
  • Android实现登录界面和功能实例

    千次下载 热门讨论 2014-10-30 20:59:48
    最近一个android小程序需要登录功能,我简单实现了一下。这是整个工程源码,注释嘛,还算详细吧
  • Android登录功能实现

    千次阅读 2017-07-18 15:22:09
    APP中必备功能登录实现代码: 效果图:   返回数据: { "description": "登录成功", "flag": "success", "id": "457" } 1、登录布局activity_main: <RelativeLayout xmlns:android="http://schemas.

    APP中必备功能登录的实现代码:

    效果图:

                 


    请求成功后返回的数据:

    {
        "description": "登录成功",
        "flag": "success",
        "id": "457"
    }



    1、登录布局activity_main:

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:paddingBottom="@dimen/activity_vertical_margin"
        android:paddingLeft="@dimen/activity_horizontal_margin"
        android:paddingRight="@dimen/activity_horizontal_margin"
        android:paddingTop="@dimen/activity_vertical_margin"
        tools:context="com.wdl.login.MainActivity">
        <LinearLayout
            android:layout_width="match_parent"
            android:orientation="vertical"
            android:layout_height="wrap_content">
            <EditText
                android:id="@+id/photo"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:hint="请输入手机号"/>
            <EditText
                android:id="@+id/pwd"
                android:password="true"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:hint="请输入密码"/>
            <Button
                android:id="@+id/btn_log"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="登录"/>
        </LinearLayout>
    
    </RelativeLayout>
    

    2、MainActivity.java部分代码:

    代码中需要使用到okhttp架包,这里我就不展示怎么添加了(博文如何添加架包:http://blog.csdn.net/qq_26650589/article/details/73159658

    public class MainActivity extends AppCompatActivity {
        //用户名,密码
        private EditText photo, pwd;
        private Button btn;
        public  String result,is;
        private   String photostring,pwdstring;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            photo = (EditText) findViewById(R.id.photo);
            pwd = (EditText) findViewById(R.id.pwd);
            btn = (Button) findViewById(R.id.btn_log);
            btn.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    //获取文本框中的内容
                    photostring = photo.getText().toString().trim();
                    pwdstring = pwd.getText().toString().trim();
                    Okhttp(photostring, pwdstring);
    
    
                }
            });
        }
    
        public void Okhttp(final String pthot, final String pwd) {
            new Thread(new Runnable() {//开启线程
                @Override
                public void run() {
                    FormBody body =new FormBody.Builder()
                            .add("phone",pthot)   //提交参数电话和密码
                            .add("pwd",pwd)
                            .build();
                    Request request = new Request.Builder()
                            .url("http://192.168.1.6/Login/login")  //请求的地址
                            .post(body)
                            .build();
                    OkHttpClient client=new OkHttpClient();
    
                    try {
                        Response response = client.newCall(request).execute();
                        result = response.body().string();           //获得值
                        JX(result);    //解析
    
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
            }).start();
    
    
        }
        private void JX(String date){
            try {
                JSONObject jsonObject=new JSONObject(date);
                String flag = jsonObject.getString("flag");//获取返回值flag的内容
                if (flag.equals("success")){
                    is = jsonObject.getString("description");
    
                }else{
                    is = jsonObject.getString("description");
                }
                Message message = new Message();
                message.what = 1;
                handler.sendMessage(message);
            } catch (JSONException e) {
                e.printStackTrace();
            }
    
        }
    
        private Handler handler=new Handler(){
            @Override
            public void handleMessage(Message msg) {
                switch (msg.what) {
    
                    case 1:
                        Toast.makeText(MainActivity.this, is,Toast.LENGTH_LONG).show();
                        break;
                }
            }
        };
    }
    还有不要忘记添加网络权限:

    <uses-permission android:name="android.permission.INTERNET"></uses-permission>




    展开全文
  • Android 实现登录注册功能

    万次阅读 多人点赞 2015-12-27 00:31:04
    初次使用SQliteOpenHelper,SQliteDatabase实现登录注册功能。写下这篇博客谨记。先上图片看看效果。 **首先创建布局文件activity_main.xml文件。布局很简单只有一个LinearLayout,一个TableLayout,两个...

    初次使用SQliteOpenHelper,SQliteDatabase实现登录注册功能。写下这篇博客谨记。先上图片看看效果。
    登录界面
    注册界面
    登录成功界面

    首先创建布局文件activity_main.xml文件。布局很简单只有一个LinearLayout,一个TableLayout,两个TextView,两个EditText,两个Button。之所以在TableLayout之前嵌套一个LinearLayout,是希望把背景图定死。不然输入框获取焦点,软键盘弹出时背景图会被拉伸。关于软键盘弹出的遮挡组件影响美观的事情我还上网搜了有关资料。
    Android彻底解决软键盘弹出遮挡组件
    但是,我并没有按照这篇博文的方式重写LinearLayout。我的方法是直接设置marginTop=200dp。
    以下是activity_main.xml源码:

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:background="@drawable/background"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        >
    <TableLayout
    
        android:layout_width="match_parent"
        android:layout_marginTop="200dp"
        android:layout_height="match_parent">
        <TableRow
            android:layout_width="match_parent"
            android:layout_height="wrap_content">
    
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/username"
                android:textSize="20dp"
                android:layout_marginLeft="30dp"
                android:textColor="#F5F5F5"
                android:id="@+id/textView" />
    
            <EditText
                android:layout_width="200dp"
                android:layout_height="wrap_content"
                android:background="@drawable/edit_selector"
                android:cursorVisible="false"
                android:singleLine="true"
                android:gravity="center"
                android:layout_marginRight="30dp"
                android:id="@+id/editText" />
    
        </TableRow>
        <TableRow android:layout_marginTop="10dp"
            android:layout_width="match_parent"
            android:layout_height="wrap_content">
    
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textSize="20dp"
                android:layout_marginLeft="30dp"
                android:textColor="#F5F5F5"
                android:text="@string/password"
                android:id="@+id/textView2" />
    
            <EditText
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:inputType="textPassword"
                android:background="@drawable/edit_selector"
                android:ems="10"
                android:gravity="center"
                android:singleLine="true"
                android:cursorVisible="false"
                android:layout_marginRight="30dp"
                android:id="@+id/editText3" />
    
        </TableRow>
        <TableRow android:layout_marginTop="20dp"
            android:layout_width="match_parent"
            android:layout_height="wrap_content">
    
            <Button
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="登录"
                android:textSize="20dp"
                android:background="@drawable/button_selector"
                android:layout_marginLeft="30dp"
                android:id="@+id/button" />
    
            <Button
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="注册"
                android:textSize="20dp"
                android:layout_marginLeft="10dp"
                android:background="@drawable/button_selector"
                android:layout_marginRight="30dp"
                android:id="@+id/button2" />
        </TableRow>
    
    
    </TableLayout>
    </LinearLayout>

    写好了activity_main.xml之后呢,我还在drawable文件夹下定义了一个edit_selector和一个button_selector.xml。是为了设置输入框获取焦点是的状态改变和button点击前后的状态改变。特别提醒android的空格是#&160; 不是&nbsp;。

    XML文件定义好之后,我们就获取组件并为其设置监听器。

      @Override
        protected void onCreate(Bundle savedInstanceState) {
    
            super.onCreate(savedInstanceState);
            requestWindowFeature(Window.FEATURE_NO_TITLE);
            setContentView(R.layout.activity_main);
            userName=(EditText)findViewById(R.id.editText);
            password=(EditText)findViewById(R.id.editText3);
            loadButton = (Button) findViewById(R.id.button);
            registerButton = (Button) findViewById(R.id.button2);
            loadButton.setTag(1);
            loadButton.setOnClickListener(this);
            registerButton.setTag(2);
            registerButton.setOnClickListener(this);
    
        }
    
        @Override
        public void onClick(View v) {
            int tag = (int) v.getTag();
            switch (tag) {
                case 1:
                    Intent intent1=new Intent(MainActivity.this,firstPage.class);
                    intent1.putExtra("userName",userName.getText().toString());
                    intent1.putExtra("password",password.getText().toString());
                    if (idCorrect()){
                        intent1.putExtra("userName",userName.getText().toString());
                        intent1.putExtra("password",password.getText().toString());
                        startActivity(intent1);
                    }
                    break;
    
                case 2:
                    Intent intent=new Intent(this,registerActivity.class);
                    startActivity(intent);
                    break;
            }
    
        }

    这是登录界面的代码。当用户输入账号密码时,先进行判断该用户是否注册,即查询数据库。如果正确就跳转到另一个activity。

        public boolean idCorrect(){
            myOpenHelper=new MyOpenHelper(this,"mydb.db",null,1);
            database=myOpenHelper.getWritableDatabase();
            Cursor cursor=database.rawQuery(qurySql,null);
            while(cursor.moveToNext()){
                userName1=cursor.getString(cursor.getColumnIndex("userId"));
                password1=cursor.getString(cursor.getColumnIndex("password"));
                if (userName1.equals(userName.getText().toString())&&password1.equals(password.getText().toString())){
                    return true;
                }
                }
                Toast.makeText(this,"账号或密码错误,请重新输入",Toast.LENGTH_LONG).show();
                return false;
    
            }

    这是查询数据库并判断该用户是否已注册。

    //打开或创建一个名为mydb.db的数据库。如果没有就创建一个
    myOpenHelper=new MyOpenHelper(this,"mydb.db",null,1);
    //在getWritableDatabase()之前数据库其实并没有实际创建。
    //所以真正意义上来说这句才是创建数据库。获取一个可读写的数据库
    database=myOpenHelper.getWritableDatabase();
    //查询语句
    Cursor cursor=database.rawQuery(qurySql,null);

    MyOpenHelper是一个继承了SQLiteOpenHelper的子类。第一个参数是context,第二个参数是String DatabaseName,要打开或创建的数据库名称,第三个参数是CursorFactory factory,用来创建cursor对象,默认为null。第四个参数为int version,数据库版本。

    接下来我们看下注册界面的activity。

    package com.example.admin.dec1224;
    
    import android.app.Activity;
    import android.content.Intent;
    import android.database.sqlite.SQLiteDatabase;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.Button;
    import android.widget.EditText;
    import android.widget.Toast;
    
    /**
     * Created by admin on 2015/12/25.
     */
    public class registerActivity extends Activity implements View.OnClickListener{
        private Button register;
        private Button back;
        private String userName;
        private String password;
        private MyOpenHelper myOpenHelper;
        public static final String createTableSql="create table if not exists userInfo (userId varchar,password varchar)";
        private int Tag=0;
        private SQLiteDatabase database;
        private EditText editUser;
        private EditText pwd;
        private EditText pwdAgain;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.register);
            editUser=(EditText)findViewById(R.id.reg_userText);
            pwd=(EditText)findViewById(R.id.reg_pwdText);
            pwdAgain=(EditText)findViewById(R.id.reg_pwdagText);
            register= (Button) findViewById(R.id.button3);
            register.setTag(1);
            register.setOnClickListener(this);
            back=(Button)findViewById(R.id.button4);
            back.setTag(2);
            back.setOnClickListener(this);
    
        }
    
        @Override
        public void onClick(View v) {
            int Tag=(int)v.getTag();
           switch (Tag){
               case 1:
                   createDatabase();
                   createTable();
                   insertData();
                   Toast.makeText(registerActivity.this,"注册成功",Toast.LENGTH_LONG).show();
                   break;
               case 2:
                   Intent intent=new Intent(this,MainActivity.class);
                   startActivity(intent);
                   break;
               default:
                   Toast.makeText(registerActivity.this,"注册失败,请再试一次",Toast.LENGTH_LONG).show();
                   break;
    
           }
    
        }
    
        public void createDatabase(){
            myOpenHelper=new MyOpenHelper(this,"mydb.db",null,1);
            database=myOpenHelper.getWritableDatabase();
    
        }
    
        public void createTable(){
            createDatabase();
            database.execSQL(createTableSql);
    
        }
    
        public void insertData(){
            pwdCorrect();
            createDatabase();
            String insertSql="insert into userInfo (userId,password) values ('"+editUser.getText().toString()+"','"+pwd.getText().toString()+"');";
            database.execSQL(insertSql);
    //        ContentValues cv=new ContentValues();
    //        cv.put(userName,editUser.getText().toString());
    //        cv.put(password,pwd.getText().toString());
    //        database.insert("userInfo", null, cv);
    
    
    
        }
    
        public boolean pwdCorrect(){
            if(pwd.getText().toString().equals(pwdAgain.getText().toString())){
                return true;
            }
            Toast.makeText(registerActivity.this,"两次密码输入不一致,请重新输入。",Toast.LENGTH_LONG).show();
            return false;
    
    
        }
    }
    

    即插入数据。

    展开全文
  • Android仿QQ登录界面示例,实现登录、注册功能

    万次阅读 多人点赞 2018-08-28 17:58:22
    Android开发经常用到注册、登录功能,于是便整理出一般通用的登录界面,并实现其相应功能。供读者参阅。此项目包含三个活动,即登录,注册界面,找回密码。 首先是登录界面 activity_main.xml: &lt;?...
  • Android Studio 登录功能实现

    万次阅读 2018-07-15 22:20:55
    LoginActivity.java package com.hyx.example.mymap; import java.text.SimpleDateFormat; import java.util.Date; ...import android.app.Activity;...import android.content.Intent;...import android.content.Share...
  • Android实现QQ登录功能

    千次阅读 2020-03-20 11:12:37
    } /** * 自定义监听器实现IUiListener接口后,需要实现的3个方法 * onComplete完成 onError错误 onCancel取消 */ private class BaseUiListener implements IUiListener { @Override public void onComplete(Object...
  • Android 实现登录界面和功能实例

    万次阅读 多人点赞 2014-10-30 21:03:05
    最近一个android小程序需要登录功能,我简单实现了一下。现在记录下来也当做个笔记,同时也希望可以相互学习。所以,如果我的代码有问题,还各位请提出来。多谢了! 下面,就简述一下此实例的主要内容:  ...
  • 安卓Android本地Sqlite实现注册账号和登录功能

    万次阅读 多人点赞 2016-05-21 21:23:40
    实现了注册账号时将数据写入本地SQLite,登录账号时从本地SQLite匹配数据,并有记住密码功能,以及通过改密口令(类似于密保问题)修改密码的功能 思路很简单,登录账号的时候,先去数据库匹配账号,如果匹配到了...
  • android 自动登录功能实现

    万次阅读 2016-10-23 21:39:23
    android 项目开发中经常会涉及到自动登录功能
  • Android studio自带的 LoginActivity连接MySQL实现登录功能 连接MySQL import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; class ...
  • Android注册登录功能

    2017-07-10 10:10:28
    实现Android的注册登录功能,基本涵盖了注册登录的问题。
  • 使用Android 实现计算器功能

    万次阅读 多人点赞 2018-09-11 11:45:35
    使用android实现简易的计算器的功能 1、给计算机布局:activity_main_xml: &amp;amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;amp;gt; &...
  • 安卓通过SQLite实现登录注册功能(小白式教程)

    千次阅读 多人点赞 2020-10-21 19:44:51
    安卓通过SQLlite实现登录注册功能 前面基本操作看图片 第一个xml文件是:round_bg.xml,后面界面布局要用到 <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android=...
  • Android——实现登录和注册功能

    千次阅读 2020-04-05 23:43:06
    前言 自学Android有段时间了,觉得是时候尝试写一些小demo尝试...先来说说登录界面的实现。 在布局上最外层我使用了LinearLayout,这也是我在布局中使用最多也是最熟悉的布局,所以我首选这个,比较方便,里面我嵌...
  • 安卓客户端输入账号和密码,使用 okHttp 向服务器端发送请求并传递输入的账号和密码,服务器端的登录接口查询数据库,判断是否能登录成功,然后返回给客户端JSON字符串,客户使用Gson解析服务器返回的数据,做出不同...
  • 使用SQLiteOnpeHelper,SQLiteDatabase实现对数据库的增删查改。以及对按钮及文本框实现获取焦点后的效果
  • android:textColor="@android:color/background_dark" android:text="账号:"/> android:id="@+id/name" android:layout_width="match_parent" android:layout_height="50dp" android:hint="请输入账号...
  • Android实现录像功能

    千次阅读 2019-07-07 16:10:43
    Android实现录像功能一、目标二、实现方案1. 调用第三方应用2. 使用Camera API实现录像三、最终代码四、过程回顾五、接下来六、Finally 一、目标 实现录像功能,为神马笔记实现视频笔记功能做准备。 二、实现方案 1....
  • Android开发之自动登录功能实现

    千次阅读 2018-07-07 14:08:57
    在我们平时使用的手机应用都可以实现只需要登陆一次账号后,第二次进入应用直接跳转到效果界面的效果,还有QQ的登陆框是如何记忆我们的隐身登陆,保存账号选项的呢,这些都是通过使用Sh
  • Android实现录音功能及播放语音功能

    千次阅读 2016-08-27 16:01:08
    Android实现录音功能其实很简单,直接调用的系统的就ok了,这里就不写实现的原理了,直接部署代码:所谓的实现就是用的MediaRecorder。 录音功能代码:  //开始录制  private void startRecord(){  if(mr =...
  • Android 实现长按功能

    千次阅读 2020-04-30 18:03:00
    Android 开发其中View是个很重要的点,View能自带监听点击,或长按功能,但是随着日常开发,系统的长按不一定能满足需求,比如有些需求是长按十秒触发动作,这种系统不一定能满足,怎么办呢? 这里我先给大家推荐一...
  • 请教各位高手,我本来是做.net开发的,但是现在要求做一个安卓项目,请问各位安卓开发怎么连接sql数据库实现用户的登录和注册功能呢?最后给上事例代码我看一下,本人之前一直写C#代码,完全不懂java的东西,感觉很...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 515,478
精华内容 206,191
关键字:

安卓实现登录功能