一个经常用到的APP——记事簿

在这里插入图片描述这是一个简单的应用——————记事簿

我使用了许多的库:
//沉浸式状态栏开源库
implementation ‘com.getbase:floatingactionbutton:1.10.1’
//floatingActionButton开源库
implementation ‘com.android.support:cardview-v7:26.1.0’
implementation ‘com.github.arcadefire:nice-spinner:1.3.1’
//下拉菜单开源库
implementation ‘com.github.joaquimley:faboptions:1.2.0’
//floatingbutton库
implementation ‘com.rengwuxian.materialedittext:library:2.1.4’
//textedit开源库
implementation ‘me.gujun.android.taggroup:library:1.4@aar’
//标签库
implementation ‘com.yuyh.imgsel:library:2.0.3’
//拍照图片加载库
implementation ‘com.github.bumptech.glide:glide:3.7.0’
//图片加载库
implementation ‘org.greenrobot:greendao:3.2.2’
// add library数据库
implementation ‘cn.aigestudio.datepicker:DatePicker:2.2.0’
implementation ‘com.kyleduo.switchbutton:library:2.0.0’
//switchbutton开源库
implementation ‘com.github.lecho:hellocharts-library:1.5.8@aar’
//chart图表开源库
/**
* 动画代码库
*/
implementation ‘com.android.support:support-compat:26.1.0’
implementation ‘com.daimajia.easing:library:2.0@aar’
implementation ‘com.daimajia.androidanimations:library:2.3@aar’

贴出部分代码

package zql.app_jinnang.View;

import android.annotation.TargetApi;
import android.app.Application;
import android.content.Context;
import android.content.DialogInterface;
import android.os.Build;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.Toolbar;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.AdapterView;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;

import com.jaeger.library.StatusBarUtil;
import com.rengwuxian.materialedittext.MaterialEditText;

import org.angmarch.views.NiceSpinner;

import java.util.Arrays;
import java.util.LinkedList;
import java.util.List;

import zql.app_jinnang.Bean.Means;
import zql.app_jinnang.Prestener.PrestenerImp_about;
import zql.app_jinnang.Prestener.Prestener_about;
import zql.app_jinnang.R;
import zql.app_jinnang.UserSeting;

import static zql.app_jinnang.R.color.colorFloatingButton;

public class AboutActivity extends AppCompatActivity implements AboutActivityImp,View.OnClickListener{
    /**
     *         ┏┓   ┏┓
     *        ┏┛┻━━━┛┻┓
     *        ┃       ┃
     *        ┃   ━   ┃
     *        ████━████     ┃
     *        ┃       ┃
     *        ┃   ┻   ┃
     *        ┃       ┃
     *        ┗━┓   ┏━┛
     *          ┃   ┃
     *          ┃   ┃
     *          ┃   ┃
     *          ┃   ┃
     *          ┃   ┃
     *          ┃   ┃
     *          ┃    ┗━━━┓
     *          ┃ 神兽保佑   ┣┓
     *          ┃ 代码无BUG   ┏┛
     *          ┗┓┓┏━┳┓┏┛
     *           ┃┫┫ ┃┫┫
     *           ┗┻┛ ┗┻┛
     *
     */
    private PrestenerImp_about prestenerImp_about;
    private AlertDialog alertDialog_creatpassword;
    private NiceSpinner niceSpinner;
    private Toolbar toolbar_about;
    private UserSeting userSeting;
    private static final int REQUEST_COLOR=3;

    @TargetApi(Build.VERSION_CODES.M)
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_about);
        prestenerImp_about=new Prestener_about(this);
        StatusBarUtil.setColor(this,getColor(colorFloatingButton));
        userSeting=(UserSeting)getApplication();
        initview();
        prestenerImp_about.setBackgroundcolorfromSeting();
    }
    private void initview(){
        inittoolbarseting();
        initAboutcode();
        initBackgroundcolorview();
        initSerectandQuestionview();
    }
    private void inittoolbarseting(){
        toolbar_about=(Toolbar)this.findViewById(R.id.toolbar_about);
        setSupportActionBar(toolbar_about);
        getSupportActionBar().setHomeButtonEnabled(true);//设置返回键可用
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
        getSupportActionBar().setTitle("");
        toolbar_about.setNavigationOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                finish();
            }
        });
    }
    private void initSerectandQuestionview(){
        TextView text_password=(TextView)this.findViewById(R.id.text_creatpasswordandquestion);
        TextView text_password_edit=(TextView)this.findViewById(R.id.text_editpassword);
        TextView text_question_edit=(TextView)this.findViewById(R.id.text_editquestion);
        TextView text_forgetpaswword=(TextView)this.findViewById(R.id.text_forgetpassword);
        text_password.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                if (prestenerImp_about.isnullthepasswordfromSeting()){
                    initpassworddialog();
                }else {
                    Toast.makeText(AboutActivity.this, "密码已经存在,如修改请点击修改密码", Toast.LENGTH_SHORT).show();
                }
            }
        });
        text_password_edit.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                if (prestenerImp_about.isnullthepasswordfromSeting()){
                    Toast.makeText(AboutActivity.this, "密码尚未创建,请先创建密码", Toast.LENGTH_SHORT).show();
                }else {
                    initEditpassworddialog();
                }
            }
        });
        text_question_edit.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                if (prestenerImp_about.isnullthequestionfromSeting()){
                    Toast.makeText(AboutActivity.this, "密保尚未创建,请先创建密保", Toast.LENGTH_SHORT).show();
                }else {
                    initQuestionddialog();
                }
            }
        });
        text_forgetpaswword.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                if (prestenerImp_about.isnullthequestionfromSeting()){
                    Toast.makeText(AboutActivity.this, "密保尚未创建,请先创建密保", Toast.LENGTH_SHORT).show();
                }else {
                    initiscurrentQuestiondialog();
                }
            }
        });
    }
    private void initEditnewpasssworddialog(){
        AlertDialog.Builder builder=new AlertDialog.Builder(this);
        LayoutInflater layoutInflater=LayoutInflater.from(this);
        View centerview=layoutInflater.inflate(R.layout.activity_set_editpassworddialog,null);
        final MaterialEditText materialEditText_password=(MaterialEditText)centerview.findViewById(R.id.set_dialog_password_edit_password);
        final TextView texttitle=(TextView)centerview.findViewById(R.id.title_text_password);
        Button button_ok=(Button)centerview.findViewById(R.id.set_dialog_password_ok_password);
        final AlertDialog alertDialog_editpassword=builder.setView(centerview).create();
        texttitle.setText("创建新的密码");
        button_ok.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                if (Means.isedittext_empty(materialEditText_password)){
                    Toast.makeText(AboutActivity.this, "请输入新密码", Toast.LENGTH_SHORT).show();
                }else {
                    if (materialEditText_password.getText().toString().length()!=6){
                        Toast.makeText(AboutActivity.this, "请输入六位密码", Toast.LENGTH_SHORT).show();
                    }else {
                        prestenerImp_about.putpasswordOnSeting(materialEditText_password.getText().toString());
                        alertDialog_editpassword.dismiss();
                    }
                }
            }
        });
        alertDialog_editpassword.show();
    }
    private void initEditpassworddialog(){//实例化一个重新编辑密码的dialog
        AlertDialog.Builder builder=new AlertDialog.Builder(this);
        LayoutInflater layoutInflater=LayoutInflater.from(this);
        View centerview=layoutInflater.inflate(R.layout.activity_set_editpassworddialog,null);
        final MaterialEditText materialEditText_password=(MaterialEditText)centerview.findViewById(R.id.set_dialog_password_edit_password);
        final TextView texttitle=(TextView)centerview.findViewById(R.id.title_text_password);
        Button button_ok=(Button)centerview.findViewById(R.id.set_dialog_password_ok_password);
        final AlertDialog alertDialog_editpassword=builder.setView(centerview).create();
        texttitle.setText("请输入旧密码");
        button_ok.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                if (prestenerImp_about.iscurrentthepasswordfromSeting(materialEditText_password.getText().toString())){
                    initEditnewpasssworddialog();
                    alertDialog_editpassword.dismiss();
                }else {
                    Toast.makeText(AboutActivity.this, "输入密码有误", Toast.LENGTH_SHORT).show();
                }
            }
        });
        alertDialog_editpassword.show();
    }
    private void initQuestionddialog(){//实例化一个重新编辑密保的dialog
        AlertDialog.Builder builder=new AlertDialog.Builder(this);
        LayoutInflater layoutInflater=LayoutInflater.from(this);
        View centerview=layoutInflater.inflate(R.layout.activity_set_editquestiondialog,null);
        final MaterialEditText materialEditText_password=(MaterialEditText)centerview.findViewById(R.id.set_dialog_question_edit_question);
        final TextView texttitle=(TextView)centerview.findViewById(R.id.title_text_question);
        Button button_ok=(Button)centerview.findViewById(R.id.set_dialog_password_ok_question);
        final AlertDialog alertDialog_editpassword=builder.setView(centerview).create();
        texttitle.setText("请输入旧密保");
        button_ok.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                if (prestenerImp_about.iscurrentthequestionfromSeting(materialEditText_password.getText().toString())){
                    alertDialog_editpassword.dismiss();
                    initeditnewQuestiondialog();
                }else {
                    Toast.makeText(AboutActivity.this, "输入旧的密保有误", Toast.LENGTH_SHORT).show();
                }
            }
        });
        alertDialog_editpassword.show();
    }
    private void initeditnewQuestiondialog(){
        AlertDialog.Builder builder=new AlertDialog.Builder(this);
        LayoutInflater layoutInflater=LayoutInflater.from(this);
        View centerview=layoutInflater.inflate(R.layout.activity_set_editquestiondialog,null);
        final MaterialEditText materialEditText_password=(MaterialEditText)centerview.findViewById(R.id.set_dialog_question_edit_question);
        final TextView texttitle=(TextView)centerview.findViewById(R.id.title_text_question);
        Button button_ok=(Button)centerview.findViewById(R.id.set_dialog_password_ok_question);
        final AlertDialog alertDialog_editpassword=builder.setView(centerview).create();
        texttitle.setText("请输入新密保");
        button_ok.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                if (Means.isedittext_empty(materialEditText_password)){
                    Toast.makeText(AboutActivity.this, "请输入密保", Toast.LENGTH_SHORT).show();
                }else {
                    prestenerImp_about.putquestionOnSeting(materialEditText_password.getText().toString());
                    alertDialog_editpassword.dismiss();
                }
            }
        });
        alertDialog_editpassword.show();
    }
    private void initiscurrentQuestiondialog(){
        AlertDialog.Builder builder=new AlertDialog.Builder(this);
        LayoutInflater layoutInflater=LayoutInflater.from(this);
        View centerview=layoutInflater.inflate(R.layout.activity_set_editquestiondialog,null);
        final MaterialEditText materialEditText_password=(MaterialEditText)centerview.findViewById(R.id.set_dialog_question_edit_question);
        final TextView texttitle=(TextView)centerview.findViewById(R.id.title_text_question);
        Button button_ok=(Button)centerview.findViewById(R.id.set_dialog_password_ok_question);
        final AlertDialog alertDialog_editpassword=builder.setView(centerview).create();
        texttitle.setText("请输入密保");
        button_ok.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                if (Means.isedittext_empty(materialEditText_password)){
                    Toast.makeText(AboutActivity.this, "请输入密保", Toast.LENGTH_SHORT).show();
                }else {
                    if (prestenerImp_about.iscurrentthequestionfromSeting(materialEditText_password.getText().toString())){
                        alertDialog_editpassword.dismiss();
                        prestenerImp_about.showthecurrentpasswordOnAboutactivity();
                    }else {
                        Toast.makeText(AboutActivity.this, "密保错误请重新输入", Toast.LENGTH_SHORT).show();
                    }
                }
            }
        });
        alertDialog_editpassword.show();
    }
    private void initBackgroundcolorview(){//颜色选择
        niceSpinner=(NiceSpinner)this.findViewById(R.id.spiner_color_set);
        List<String>data=new LinkedList<>(Arrays.asList("默认","珊瑚朱","樱草紫","霓虹绿","绅士黑"));
        niceSpinner.attachDataSource(data);
        niceSpinner.addOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
                switch (i){
                    case 0:
                        prestenerImp_about.putcurrentcolorOnSeting(0);
                        prestenerImp_about.setBackgroundcolorfromSeting();
                        break;
                    case 1:
                        prestenerImp_about.putcurrentcolorOnSeting(1);
                        prestenerImp_about.setBackgroundcolorfromSeting();
                        break;
                    case 2:
                        prestenerImp_about.putcurrentcolorOnSeting(2);
                        prestenerImp_about.setBackgroundcolorfromSeting();
                        break;
                    case 3:
                        prestenerImp_about.putcurrentcolorOnSeting(3);
                        prestenerImp_about.setBackgroundcolorfromSeting();
                        break;
                    case 4:
                        prestenerImp_about.putcurrentcolorOnSeting(4);
                        prestenerImp_about.setBackgroundcolorfromSeting();
                        break;
                    default:
                            break;

                }
            }
        });
    }
    private void initAboutcode(){

    }
    private void initpassworddialog(){//实例化一个创建密码和密保问题的Dialog
        AlertDialog.Builder builder=new AlertDialog.Builder(this);
        LayoutInflater layoutInflater=LayoutInflater.from(this);
        View centerview=layoutInflater.inflate(R.layout.activity_set_passworddialog,null);
        final MaterialEditText materialEditText_password=(MaterialEditText)centerview.findViewById(R.id.set_dialog_password_edit);
        final MaterialEditText materialEditText_question=(MaterialEditText)centerview.findViewById(R.id.set_dialog_question_edit);
        Button button_ok=(Button)centerview.findViewById(R.id.set_dialog_password_ok);
        alertDialog_creatpassword=builder.setView(centerview).create();
        button_ok.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                if (Means.isedittext_empty(materialEditText_password)&Means.isedittext_empty(materialEditText_question)){
                    Toast.makeText(AboutActivity.this, "请输入密码和密保", Toast.LENGTH_SHORT).show();
                }else if (Means.isedittext_empty(materialEditText_password)|Means.isedittext_empty(materialEditText_question)){
                    Toast.makeText(AboutActivity.this, "请输入密码或密保", Toast.LENGTH_SHORT).show();
                }else {
                    if (materialEditText_password.getText().toString().length()!=6){
                        Toast.makeText(AboutActivity.this, "密码为6位数字", Toast.LENGTH_SHORT).show();
                    }else {
                        prestenerImp_about.putpasswordandquestionOnSeting(materialEditText_password.getText().toString(),
                                materialEditText_question.getText().toString());
                        alertDialog_creatpassword.dismiss();
                    }
                }
            }
        });
        alertDialog_creatpassword.show();
    }

    @Override
    public void showthecurrentPassword(String password) {
        AlertDialog.Builder builder=new AlertDialog.Builder(this);
        builder.setTitle("密码");
        builder.setMessage(password);
        builder.setPositiveButton("知道了", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialogInterface, int i) {
                dialogInterface.dismiss();
            }
        });
        builder.create().show();
    }

    @Override
    public Context getAboutActivityContext() {
        return this;
    }

    @Override
    public Application getAboutApplication() {
        return this.getApplication();
    }

    @Override
    public void onClick(View view) {
    }

    @Override
    public void setBackgroundcolorfromSeting(List<Integer>colorlist) {
        niceSpinner.setSelectedIndex(prestenerImp_about.getcurrentcolorNumfromSeting());
        StatusBarUtil.setColor(this,colorlist.get(0));
        toolbar_about.setBackgroundColor(colorlist.get(0));
    }

    @Override
    public void finish() {
        setResult(REQUEST_COLOR);
        super.finish();
    }
}

``package zql.app_jinnang.View;

import android.annotation.SuppressLint;
import android.annotation.TargetApi;
import android.app.Application;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Build;
import android.os.Vibrator;
import android.support.annotation.RequiresApi;
import android.support.design.widget.BottomSheetDialog;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.view.menu.MenuBuilder;
import android.support.v7.widget.CardView;
import android.support.v7.widget.Toolbar;
import android.util.TypedValue;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.MotionEvent;
import android.view.View;
import android.view.Window;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.PopupMenu;
import android.widget.RelativeLayout;
import android.widget.TextView;
import android.widget.Toast;

import com.bumptech.glide.Glide;
import com.daimajia.androidanimations.library.Techniques;
import com.daimajia.androidanimations.library.YoYo;
import com.getbase.floatingactionbutton.AddFloatingActionButton;
import com.getbase.floatingactionbutton.FloatingActionButton;
import com.getbase.floatingactionbutton.FloatingActionsMenu;
import com.jaeger.library.StatusBarUtil;
import com.yuyh.library.imgsel.ISNav;
import com.yuyh.library.imgsel.common.ImageLoader;
import com.yuyh.library.imgsel.config.ISCameraConfig;

import java.lang.reflect.Method;
import java.util.List;

import zql.app_jinnang.Adapter.ViewPagerCardAdapter;
import zql.app_jinnang.Bean.Means;
import zql.app_jinnang.Bean.NoteBean;
import zql.app_jinnang.Prestener.Prestener_main;
import zql.app_jinnang.Prestener.PrestenerImp_main;
import zql.app_jinnang.R;
import zql.app_jinnang.Service.PasswordView.KeyPasswordView;
import zql.app_jinnang.Service.PasswordView.KeynumberDialog;


public class MainActivity extends AppCompatActivity implements MainActivityImp{
    /**
     *         ┏┓   ┏┓
     *        ┏┛┻━━━┛┻┓
     *        ┃       ┃
     *        ┃   ━   ┃
     *        ████━████     ┃
     *        ┃       ┃
     *        ┃   ┻   ┃
     *        ┃       ┃
     *        ┗━┓   ┏━┛
     *          ┃   ┃
     *          ┃   ┃
     *          ┃   ┃
     *          ┃   ┃
     *          ┃   ┃
     *          ┃   ┃
     *          ┃    ┗━━━┓
     *          ┃ 神兽保佑   ┣┓
     *          ┃ 代码无BUG   ┏┛
     *          ┗┓┓┏━┳┓┏┛
     *           ┃┫┫ ┃┫┫
     *           ┗┻┛ ┗┻┛
     *
     */
    private PrestenerImp_main prestenerImpMain;
    private FloatingActionsMenu floatingActionsmenu_add;
    private FloatingActionButton floatingActionButton_work,floatingActionButton_study,floatingActionButton_live,floatingActionButton_diarly,floatingActionButton_travel,floatingActionButton_calendar;
    private AddFloatingActionButton addFloatingActionButton;
    private LinearLayout mainbottomlinearlayout,voicebuttonlayout;
    private ViewPager viewPagercard;
    private Toolbar toolbar_main;
    private TextView title_toolbar_main;
    private RelativeLayout relativeLayout;
    private PopupMenu popupMenu;
    private Integer maincolor;
    private String password="";
    private int count_delete;
    private AlertDialog alertDialog;

    private static final int REQUEST_LIST_CODE = 0;
    private static final int REQUEST_CAMERA_CODE = 1;
    private static final int REQUEST_UPDATE=2;
    private static final int REQUEST_COLOR=3;
    private static final int EDIT=0;
    private static final int CHANGE=1;
    @RequiresApi(api = Build.VERSION_CODES.M)
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        /**
         * 这个并没有什么用哈哈哈
         */
        //  supportRequestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.activity_main);
        StatusBarUtil.setColor(this, getColor(R.color.colorFloatingButton));
        prestenerImpMain =new Prestener_main(this);
        initview();
        prestenerImpMain.readNotefromDatatoMain();
        prestenerImpMain.setBackgroundcolorfromSeting();
    }
    private void initview(){//具体的View实现生成的函数
        initToolBarSeting();
        initFloatingActionButton();
        initViewPagercard();
        initCameraView();
    }
    private void initToolBarSeting(){//实现ToolBar的生成
        relativeLayout=(RelativeLayout)this.findViewById(R.id.relativeLayout_main);
        toolbar_main=(Toolbar)this.findViewById(R.id.toolbar_main);
        title_toolbar_main=(TextView)findViewById(R.id.title_toolbar_main);
        YoYo.with(Techniques.DropOut)
                .duration(700)
                .playOn(findViewById(R.id.title_toolbar_main));
      setSupportActionBar(toolbar_main);
    }
    private void initFloatingActionButton(){//实现FloatingActionButton的生成
        floatingActionButton_calendar=this.findViewById(R.id.floatingbutton_calendar);
        floatingActionsmenu_add=this.findViewById(R.id.floatinbuttonmenu_add);
        floatingActionButton_work=this.findViewById(R.id.floatingbutton_work);
        floatingActionButton_study=this.findViewById(R.id.floatingbutton_study);
        floatingActionButton_live=this.findViewById(R.id.floatingbutton_live);
        floatingActionButton_diarly=this.findViewById(R.id.floatingbutton_diary);
        floatingActionButton_travel=this.findViewById(R.id.floatingbutton_travel);
        floatingActionButton_calendar.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                prestenerImpMain.openCalendarActivity();
            }
        });
        floatingActionButton_work.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                prestenerImpMain.openAddActivity(0);
            }
        });
        floatingActionButton_study.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                prestenerImpMain.openAddActivity(1);
            }
        });
        floatingActionButton_live.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                prestenerImpMain.openAddActivity(2);
            }
        });
        floatingActionButton_diarly.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                prestenerImpMain.openAddActivity(3);
            }
        });
        floatingActionButton_travel.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                prestenerImpMain.openAddActivity(4);
            }
        });

    }
    private void initEditpassworddialog(){
        /**
         *      实例化一个重新编辑密码的dialog
         */

        if (!password.isEmpty()){
            password="";
        }
        final BottomSheetDialog passwordbottomsheetdialog=new BottomSheetDialog(MainActivity.this);
        View dialogview=LayoutInflater.from(MainActivity.this)
                .inflate(R.layout.sheetdialog_password,null);
        final KeynumberDialog keynumberDialog=(KeynumberDialog)dialogview.findViewById(R.id.main_sheetdialog_keynumber);
        final KeyPasswordView keyPasswordView=(KeyPasswordView)dialogview.findViewById(R.id.main_sheetdialog_passwordview);
        keyPasswordView.setRouldRectcolor(maincolor);
        keynumberDialog.setOnNumberClickListener(new KeynumberDialog.OnNumberClickListener() {
            @Override
            public void onNumberReturn(String number) {
                password+=number;
                if (password.length()==6){
                    if (prestenerImpMain.iscurrentthepasswordfromSeting(password)){
                        startListSecretActivity();
                        password="";
                        passwordbottomsheetdialog.dismiss();
                    }else {
                        Toast.makeText(MainActivity.this, "输入密码有误", Toast.LENGTH_SHORT).show();
                        password="";
                    }
                }
                keyPasswordView.changeTheNum(password.length());
            }

            @Override
            public void onNumberDelete() {
                if (password.length()<=1){
                    password="";
                }else {
                    password=password.substring(0,password.length()-1);
                }
                keyPasswordView.changeTheNum(password.length());
            }
        });
        passwordbottomsheetdialog.setContentView(dialogview);
        passwordbottomsheetdialog.show();

    }
    private void initCameraView(){//初始化图片加载器
        ISNav.getInstance().init(new ImageLoader() {
            @Override
            public void displayImage(Context context, String path, ImageView imageView) {
                Glide.with(context).load(path).into(imageView);
            }
        });
    }
    private void initphototakActivity(){
        ISCameraConfig config=new ISCameraConfig.Builder()
                .needCrop(true)
                .cropSize(0,0,500,500)
                .build();
        ISNav.getInstance().toCameraActivity(this,config,REQUEST_CAMERA_CODE);
    }
    private void initViewPagercard(){//实现ViewPagerCard的生成
        viewPagercard=(ViewPager)this.findViewById(R.id.viewpager_main);
    }
    private void initBottomDialog(final NoteBean noteBean){//创建底部弹出的窗口
        final BottomSheetDialog bottomSheetDialog=new BottomSheetDialog(MainActivity.this);
        View dialogview= LayoutInflater.from(MainActivity.this)
                .inflate(R.layout.activity_main_dialog,null);
        LinearLayout main_dialog_linear_about,main_dialog_linear_hide,main_dialog_linear_delete,main_dialog_linear_change,main_dialog_friendspace,main_dialog;
        main_dialog=dialogview.findViewById(R.id.main_dialog);
        main_dialog_linear_about=dialogview.findViewById(R.id.main_dialog_linear_about);
        main_dialog_friendspace=dialogview.findViewById(R.id.main_dialog_linear_friendspace);
        main_dialog_linear_hide=dialogview.findViewById(R.id.main_dialog_linear_hide);
        main_dialog_linear_delete=dialogview.findViewById(R.id.main_dialog_linear_delete);
        main_dialog_linear_change=dialogview.findViewById(R.id.main_dialog_linear_change);
        main_dialog_linear_about.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent mintent=new Intent(MainActivity.this,NoteinfoActivity.class);
                Bundle bundle=new Bundle();
                bundle.putSerializable("noteinfo", Means.changefromNotebean(noteBean));
                mintent.putExtras(bundle);
                startActivity(mintent);
                bottomSheetDialog.dismiss();
            }
        });
        main_dialog_friendspace.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                sharedNotetexttoWeChart(noteBean.getNoteinfo());
                bottomSheetDialog.dismiss();
            }
        });
        main_dialog_linear_hide.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                initPasswordFileDialog(noteBean);
                bottomSheetDialog.dismiss();
            }
        });
        main_dialog_linear_delete.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                initDeleteDialog(noteBean);
                bottomSheetDialog.dismiss();
            }
        });
        main_dialog_linear_change.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent addintent=new Intent(MainActivity.this,AddActivity.class);
                Bundle bundle=new Bundle();
                bundle.putInt("addtype",CHANGE);
                bundle.putSerializable("noteinfo",Means.changefromNotebean(noteBean));
                addintent.putExtra("data",bundle);
                startActivityForResult(addintent,REQUEST_UPDATE);
                bottomSheetDialog.dismiss();
            }
        });
        main_dialog.setBackgroundColor(maincolor);
        bottomSheetDialog.setContentView(dialogview);
        bottomSheetDialog.show();
    }
    private void sharedNotetexttoWeChart(String text){//将便签文字分享到微信朋友圈
        Intent intent=new Intent(Intent.ACTION_SEND);
        intent.setType("text/plain");
        intent.putExtra(Intent.EXTRA_TEXT,text);
        startActivity(Intent.createChooser(intent,"share"));
    }
    private void initPasswordFileDialog(final NoteBean noteBean){//将便签加入到私密文件夹中
        AlertDialog.Builder builder=new AlertDialog.Builder(this);
        builder.setTitle("隐藏");
        builder.setMessage("确认隐藏?");
        builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialogInterface, int i) {
                prestenerImpMain.changeNotetoPasswordFile(noteBean);
                prestenerImpMain.readNotefromDatatoMain();
            }
        });
        builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialogInterface, int i) {
                dialogInterface.dismiss();
            }
        });
        builder.create().show();
    }
    private void initDeleteDialog(final NoteBean noteBean){//删除选定的便签
        AlertDialog.Builder builder=new AlertDialog.Builder(this);
        builder.setTitle("删除");
        builder.setMessage("确定删除?");
        builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialogInterface, int i) {
                count_delete=viewPagercard.getCurrentItem();//做一个跳转优化
                prestenerImpMain.deleteNoteBean(noteBean);
                prestenerImpMain.readNotefromDatatoMain();
            }
        });
        builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialogInterface, int i) {
                dialogInterface.dismiss();
            }
        });
        builder.create().show();
    }

    @Override//创建菜单目录
    public boolean onCreatePanelMenu(int featureId, Menu menu) {
        getMenuInflater().inflate(R.menu.menu_main,menu);
        return super.onCreatePanelMenu(featureId, menu);
    }

    @SuppressLint("RestrictedApi")
    @Override
    protected boolean onPrepareOptionsPanel(View view, Menu menu) {
        if (menu.getClass() == MenuBuilder.class) {
            try {
                Method method = menu.getClass().getDeclaredMethod("setOptionalIconsVisible", Boolean.TYPE);
                method.setAccessible(true);
                method.invoke(menu, true);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        return super.onPrepareOptionsPanel(view, menu);
    }

    @Override//设置监听菜单
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()){
            case R.id.action_list:
                prestenerImpMain.openListActivity();
                return true;
            case R.id.action_seting:
                prestenerImpMain.openSetiongActivity();
                return true;
            case R.id.action_search:
                prestenerImpMain.openSearchActivity();
                return true;
            case R.id.action_serect:
                initEditpassworddialog();
                return true;
            case R.id.action_camera:
                initphototakActivity();
                return true;
            case R.id.action_chart:
                initChartActiviy();
                return true;
        }
        return super.onOptionsItemSelected(item);
    }

    @Override//打开新的搜索界面
    public void startSearchActivity() {
        Intent mintent=new Intent(this,SearchActivity.class);
        startActivity(mintent);
    }
    //打开数据图表分析界面
    private void initChartActiviy(){
        Intent mintent=new Intent(MainActivity.this,DataChartActivity.class);
        this.startActivity(mintent);
    }


    @Override
    public Context getActivity_this() {
        return this;
    }

    @Override//打开新的AddActivity
    public void startAddActivity(int type) {
        count_delete=0;//创建新的事件只需跳转到第一位
        floatingActionsmenu_add.collapseImmediately();
        Intent addintent=new Intent(MainActivity.this,AddActivity.class);
        Bundle bundle=new Bundle();
        bundle.putInt("addtype",EDIT);
        bundle.putInt("notetype",type);
        bundle.putString("photouri","<图片>");
        addintent.putExtra("data",bundle);
        this.startActivityForResult(addintent,REQUEST_UPDATE);
    }

    @Override//通过拍照打开新的AddActivity
    public void startAddActivityS(String path) {
        count_delete=0;//创建新的事件只需跳转到第一位
        Intent addintent=new Intent(MainActivity.this,AddActivity.class);
        Bundle bundle=new Bundle();
        bundle.putInt("addtype",EDIT);
        bundle.putInt("notetype",1001);
        bundle.putString("photouri",path);
        addintent.putExtra("data",bundle);
        startActivityForResult(addintent,REQUEST_UPDATE);
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (requestCode==REQUEST_CAMERA_CODE&&resultCode==RESULT_OK&&data!=null){
            String path=data.getStringExtra("result");
            prestenerImpMain.openAddActivityS(path);
        }
        if (requestCode==REQUEST_UPDATE){
            prestenerImpMain.readNotefromDatatoMain();
        }
        if (requestCode==REQUEST_COLOR){
            prestenerImpMain.setBackgroundcolorfromSeting();
        }
    }

    @Override
    public void startSetingActivity() {
        Intent mintet=new Intent(MainActivity.this,AboutActivity.class);
        this.startActivityForResult(mintet,REQUEST_COLOR);
    }

    @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
    @Override//设置背景的颜色
    public void setMainBackground(Integer integer) {
        relativeLayout.setBackground(getDrawable(integer));
    }

    @Override//打开新的ListActivity
    public void startListActivity() {
        Intent mintent=new Intent(MainActivity.this,ListActivity.class);
        this.startActivityForResult(mintent,REQUEST_UPDATE);
    }

    @Override//打开秘密ListActivity
    public void startListSecretActivity() {
        Intent mintent=new Intent(MainActivity.this,ListSecretActivity.class);
        this.startActivity(mintent);
    }

    @Override//打开日历CalendarActivity
    public void startCalendarActivity() {
        Intent mintent=new Intent(MainActivity.this,CalendarActivity.class);
        mintent.putExtra("UPDATE",0);
        this.startActivity(mintent);
    }

    public class ScaleTransformer0 implements ViewPager.PageTransformer {//改变形状的透明度
        private Context context;
        private float elevation;

        public ScaleTransformer0(Context context) {
            this.context = context;
            elevation = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP,
                    20, context.getResources().getDisplayMetrics());
        }

        @Override
        public void transformPage(View page, float position) {
            if (position < -1 || position > 1) {

            } else {
                if (position < 0) {
                    ((CardView) page).setCardElevation((1 + position) * elevation);
                } else {
                    ((CardView) page).setCardElevation((1 - position) * elevation);
                }
            }
        }
    }
    @Override
    public void openSheetDialog(NoteBean noteBean) {
        initBottomDialog(noteBean);
    }


    @Override
    public void readNotefromData(List<NoteBean> noteBeanList) {
        if (noteBeanList.size()!=0){
            prestenerImpMain.setMainBackgrountIcon();//当读取的数据为空过的时候,加载一个提示。
        }
        viewPagercard.removeAllViews();
        ViewPagerCardAdapter adapter=new ViewPagerCardAdapter(this,noteBeanList,this,prestenerImpMain);
        viewPagercard.setAdapter(adapter);
        /**
         * 当为删除事件时,count_delete为大于1,否则为0,在进入界面初始化的时候,我们会把count_delete设置为0
         * */

        if (count_delete>=1){//优化删除(删除完成后跳转到上一个事件界面)
            viewPagercard.setCurrentItem(count_delete-1);
        }else {
            viewPagercard.setCurrentItem(0);
        }

        viewPagercard.setPageMargin((int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP,24,getResources().getDisplayMetrics()));
        viewPagercard.setPageTransformer(false,new ScaleTransformer0(this));
    }

    @Override
    public Application getMainApplication() {
        return getApplication();
    }

    @TargetApi(Build.VERSION_CODES.LOLLIPOP)
    @Override
    public void setBackgroundcolorfromSeting(List<Integer>mlist) {
        maincolor=mlist.get(0);//设置主体颜色
        Sta

    tusBarUtil.setColor(this, mlist.get(0));
            t

oolbar_main.setBackgroundColor(mlist.get(0));
        relativeLayout.setBackgroundColor(mlist.get(1));
        floatingActionButton_diarly.setColorNormal(mlist.get(0));
        floatingActionButton_live.setColorNormal(mlist.get(0));
        floatingActionButton_study.setColorNormal(mlist.get(0));
        floatingActionButton_travel.setColorNormal(mlist.get(0));
        floatingActionButton_work.setColorNormal(mlist.get(0));
    }

    @Override
    public void setMainBackgroundIcon() {
        LinearLayout linearlayout_listempty=(LinearLayout)findViewById(R.id.linearlayout_listEmpty);
        linearlayout_listempty.setVisibility(View.GONE);
    }
}

还有的教程后续发出

https://download.csdn.net/download/qq_41053735/10798787
下载源码查看

猜你喜欢

转载自blog.csdn.net/qq_41053735/article/details/84325489