1、首先打开日程管理系统,主要看看java包和.xml,熟悉一下代码要实现具体功能。你可以发现,这个java程序全都放在一个包里,当然,这个是一个小的程序,java程序还不算太多。要是可以更加的规范,把实现不能功能的java程序分别打包,那就更好了。

android studio 简单日历 android studio开发日历_java

2、然后找到程序的入口,在AndroidManifest中有很多你建的activity,其中有个特殊的就是intent-filer这个就是表示你这个程序的入口,那么我们这个工程的入口就是

WelcomeActivity,接下来我们就去看WelcomeActivity

android studio 简单日历 android studio开发日历_数据库_02

3、查看欢迎界面的xml和WelcomeActivity,找出是否有错误

、、、
 package com.example.tasks;import android.app.Activity;
 import android.content.Intent;
 import android.os.Bundle;
 import android.os.Handler;import com.avos.avoscloud.AVUser;//第三方云库public class WelcomeActivity extends Activity {Handler handler = new Handler();//调转到登录界面
 Runnable runnable = new Runnable() {public void run() {
        Intent intent = new Intent(WelcomeActivity.this, LoginActivity.class);
        startActivity(intent);
        finish();

    }

};
//调转到主界面
Runnable runnable1 = new Runnable() {

    public void run() {
        Intent intent = new Intent(WelcomeActivity.this, MainActivity.class);
        startActivity(intent);
        finish();

    }

};

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_welcome);
    AVUser currentUser = AVUser.getCurrentUser();//加载第三方云库
    handler.postDelayed(runnable,2000);//闪频维持二十秒再次跳转至登录界面

    //以下的是错误的地方的修改,之前没有这段代码,所以欢迎界面显示不出来
    if (currentUser != null) {
        // 跳转到首页,
        handler.postDelayed(runnable1, 2000);
    } else {
        //缓存用户对象为空时,可打开用户注册界面…
        handler.postDelayed(runnable, 2000);
    }

}}


、、、

4、现在阅读注册界面java代码** RegistActivity**

、、、

public class RegistActivity extends Activity {
 EditText RegistName;
 EditText RegistPwd;
 EditText RegistPwd2;
 Button Regist;
 String RName;
 String RPwd;
 String RPwd2;
 String regist;@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_regist);
    RegistName = (EditText) findViewById(R.id.RegistName);
    RegistPwd = (EditText) findViewById(R.id.RegistPwd);
    RegistPwd2 = (EditText) findViewById(R.id.RegistPwd2);
    Regist = (Button) findViewById(R.id.Regist);



    // 修改状态栏颜色,4.4+生效
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
        setTranslucentStatus();
    }
    SystemBarTintManager tintManager = new SystemBarTintManager(this);
    tintManager.setStatusBarTintEnabled(true);
    tintManager.setStatusBarTintResource(R.drawable.iphone);//通知栏所需颜色

    Regist.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub

            RName = RegistName.getText().toString();
            RPwd = RegistPwd.getText().toString();
            RPwd2 = RegistPwd2.getText().toString();
        //这个if少了个异常处理的,如果都为空,报错
            if (!"".equals(RName) && !"".equals(RPwd) && !"".equals(RPwd2)) {
                if (!RPwd.equals(RPwd2)) {
                    Toast.makeText(RegistActivity.this, "两次输入的密码不一致", Toast.LENGTH_LONG).show();
                } else {
                    AVUser user = new AVUser();// 新建 AVUser 对象实例
                    user.setUsername(RName);// 设置用户名
                    user.setPassword(RPwd);// 设置密码
                    user.signUpInBackground(new SignUpCallback() {
                        @Override
                        public void done(AVException e) {
                            if (e == null) {
                                // 注册成功
                                Toast.makeText(RegistActivity.this, "注册成功", Toast.LENGTH_LONG).show();
                                Handler handler = new Handler();
                                Runnable runnable = new Runnable() {

                                    @Override
                                    public void run() {
                                        // TODO Auto-generated method stub
                                        Intent intent = new Intent(RegistActivity.this, LoginActivity.class);
                                        startActivity(intent);
                                        finish();

                                    }
                                };
                                handler.postDelayed(runnable, 2000);
                            } else {
                                // 失败的原因可能有多种,常见的是用户名已经存在。
                                Toast.makeText(RegistActivity.this, "用户名已存在", Toast.LENGTH_LONG).show();
                            }

                        }

                    });
                }
            }else {
                //加个报错的Toast
                Toast.makeText(RegistActivity.this, "账号密码不能为空", Toast.LENGTH_LONG).show();
            }
        }
    });

}

private void setTranslucentStatus() {

    Window window = this.getWindow();
    // Translucent status bar
    window.setFlags(
            WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS,
            WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
}}

修改完运行结果如下

android studio 简单日历 android studio开发日历_移动开发_03

、、、

5、用户注册完之后,数据库里就有了用户的账号,然后点击登录,以下是修改的代码

、、、

public class LoginActivity extends Activity {
 TextView LoginName;
 TextView LoginPwd;
 Button Login;
 TextView Regist1;
 String LN;
 String LP;@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_login);
    LoginName=(TextView) findViewById(R.id.LoginName);
    LoginPwd=(TextView) findViewById(R.id.LoginPwd);
    Login=(Button) findViewById(R.id.Login);
    Regist1=(TextView) findViewById(R.id.Regist1);


    // 修改状态栏颜色,4.4+生效
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
        setTranslucentStatus();
    }
    SystemBarTintManager tintManager = new SystemBarTintManager(this);
    tintManager.setStatusBarTintEnabled(true);
    tintManager.setStatusBarTintResource(R.drawable.iphone);//通知栏所需颜色
    Login.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            LN=LoginName.getText().toString();
            LP=LoginPwd.getText().toString();
            //云数据库,使用此类
            AVUser.logInInBackground(LN, LP, new LogInCallback<AVUser>() {
                @Override
                public void done(AVUser avUser, AVException e) {
                    //判断是否为空,此处错误,只有if语句,缺少else语句,做出个Toast
                    if (avUser!=null) {
                        Intent intent=new Intent(LoginActivity.this, MainActivity.class);
                        startActivity(intent);
                        finish();
                    }else{
                        Toast.makeText(LoginActivity.this, "账号密码不能为空", Toast.LENGTH_LONG).show();
                    }


                }
            });
        }
    });
    Regist1.setOnClickListener(new OnClickListener() {
        
        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            Intent intent=new Intent(LoginActivity.this,RegistActivity.class);
            startActivity(intent);
            
        }
    });
}

private void setTranslucentStatus() {


    Window window = this.getWindow();
    // Translucent status bar
    window.setFlags(
            WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS,
            WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
}}


、、、

以下是修改过之后的运行结果

android studio 简单日历 android studio开发日历_移动开发_04