zoukankan      html  css  js  c++  java
  • Android Studio学习路程(11)

    今天没有学习新的知识,把前面所学的复习了一下,今天做了一个简单的记账APP,实现了它的登录和界面之间的跳转的功能。下面是一些代码,我还没有做完。

      1 package com.example.hp.jizhang;
      2 
      3 import android.content.Context;
      4 import android.content.Intent;
      5 import android.content.SharedPreferences;
      6 import android.support.v7.app.ActionBarActivity;
      7 import android.os.Bundle;
      8 import android.text.Editable;
      9 import android.text.TextWatcher;
     10 import android.util.Log;
     11 import android.view.View;
     12 import android.widget.CheckBox;
     13 import android.widget.CompoundButton;
     14 import android.widget.EditText;
     15 
     16 public class MainActivity extends ActionBarActivity implements View.OnClickListener {
     17     private EditText mEtPhone;
     18     private EditText mEtPasswd;
     19     private CheckBox mCBPsd;
     20     private String TAG ="MainActivity";
     21     private String SP_PHONE = "sp_phone";
     22     private String SP_PASSWD = "sp_passwd";
     23     private String SP_IS_REMEMBER_PSD = "sp_is_remember_psd";
     24     private SharedPreferences sharedPreferences;
     25     private boolean mIsChecked=false;
     26 
     27     @Override
     28     protected void onCreate(Bundle savedInstanceState) {
     29         super.onCreate(savedInstanceState);
     30         setContentView(R.layout.activity_main);
     31 
     32         //初始化控件
     33         initUI();
     34         //初始化数据
     35         initData();
     36     }
     37 
     38     private void initData() {
     39         //实例化sharedPreferences对象
     40         if(sharedPreferences==null){
     41             sharedPreferences = getApplicationContext().getSharedPreferences("config", Context.MODE_PRIVATE);
     42         }
     43         //回显数据
     44         mEtPhone.setText(sharedPreferences.getString(SP_PHONE,""));
     45         mEtPasswd.setText(sharedPreferences.getString(SP_PASSWD,""));
     46         mCBPsd.setChecked(mIsChecked);
     47     }
     48 
     49     private void initUI() {
     50         //获取登录按钮
     51         findViewById(R.id.btn_denglu).setOnClickListener(this);
     52         //获取电话和密码输入框
     53         mEtPhone = (EditText) findViewById(R.id.et_phone);
     54         //文本改变之后记录电话
     55         mEtPhone.addTextChangedListener(new TextWatcher() {
     56             @Override
     57             public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
     58 
     59             }
     60 
     61             @Override
     62             public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
     63 
     64             }
     65 
     66             @Override
     67             public void afterTextChanged(Editable editable) {
     68                 if(mIsChecked){
     69                     if(sharedPreferences==null){
     70                         sharedPreferences = getApplicationContext().getSharedPreferences("config", Context.MODE_PRIVATE);
     71                     }
     72                     SharedPreferences.Editor edit = sharedPreferences.edit();
     73                     edit.putString(SP_PHONE, mEtPhone.getText().toString());
     74                     edit.commit();
     75                 }
     76             }
     77         });
     78         mEtPasswd = (EditText) findViewById(R.id.et_passwd);
     79         mEtPasswd.addTextChangedListener(new TextWatcher() {
     80             @Override
     81             public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
     82 
     83             }
     84 
     85             @Override
     86             public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
     87 
     88             }
     89 
     90             @Override
     91             public void afterTextChanged(Editable editable) {
     92                 if(mIsChecked){
     93                     if(sharedPreferences==null){
     94                         sharedPreferences = getApplicationContext().getSharedPreferences("config", Context.MODE_PRIVATE);
     95                     }
     96                     SharedPreferences.Editor edit = sharedPreferences.edit();
     97                     edit.putString(SP_PASSWD, mEtPasswd.getText().toString());
     98                     edit.commit();
     99                 }
    100             }
    101         });
    102         //获取多选按钮
    103         mCBPsd = (CheckBox) findViewById( R.id.cb_remember_psd);
    104         mCBPsd.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
    105             @Override
    106             public void onCheckedChanged(CompoundButton compoundButton, boolean isChecked) {
    107                 Log.d(TAG, "状态为:" + isChecked);
    108                 mIsChecked = isChecked;
    109                 if (isChecked) {
    110                     //实例化SharedPreferences对象
    111                     if (sharedPreferences == null) {
    112                         sharedPreferences = getApplicationContext().getSharedPreferences("config", Context.MODE_PRIVATE);
    113                     }
    114                     //实例化SharedPreferences的编辑者对象
    115                     SharedPreferences.Editor edit = sharedPreferences.edit();
    116                     edit.putString(SP_PHONE, mEtPhone.getText().toString());
    117                     edit.putString(SP_PASSWD, mEtPasswd.getText().toString());
    118                     edit.putBoolean(SP_IS_REMEMBER_PSD, isChecked);
    119                     //提交
    120                     edit.commit();
    121 
    122 
    123                 }
    124             }
    125         });
    126     }
    127     //获取到登录按钮后用intent方法跳转到下一个界面
    128     @Override
    129     public void onClick(View view) {
    130         Intent intent = new Intent();
    131         switch (view.getId()){
    132             case R.id.btn_denglu:
    133 
    134                 //跳转到第一个界面
    135                 intent.setClass(getApplicationContext(),FirstActivity.class);
    136                 break;
    137         }
    138         startActivity(intent);
    139     }
    140 }
     1 package com.example.hp.jizhang;
     2 
     3 import android.content.Intent;
     4 import android.os.Bundle;
     5 import android.support.v7.app.ActionBarActivity;
     6 import android.view.View;
     7 
     8 /**
     9  * Created by hp on 2020/2/16.
    10  */
    11 public class FirstActivity extends ActionBarActivity implements View.OnClickListener {
    12     protected void onCreate(Bundle savedInstanceState) {
    13         super.onCreate(savedInstanceState);
    14 
    15         setContentView(R.layout.activity_first);
    16 
    17         //初始化控件
    18         initUI();
    19     }
    20 
    21     private void initUI() {
    22         //获取控件的id
    23         findViewById(R.id.tv_income_month);//获取“月收入”
    24         findViewById(R.id.tv_output_month);//获取“月支出”
    25         findViewById(R.id.tv_balance);   //获取“余额”
    26         findViewById(R.id.btn_add_one).setOnClickListener(this);   //获取按钮“记一笔”
    27 
    28     }
    29 
    30 
    31     @Override
    32     public void onClick(View view) {
    33         Intent intent = new Intent();
    34         switch (view.getId()){
    35             case R.id.btn_add_one:
    36                 //点击“记一笔”按钮跳转到第二个界面
    37                 intent.setClass(getApplicationContext(),SecondActivity.class);
    38                 break;
    39         }
    40         startActivity(intent);
    41     }
    42 }
     1 package com.example.hp.jizhang;
     2 
     3 import android.content.Intent;
     4 import android.os.Bundle;
     5 import android.support.v7.app.ActionBarActivity;
     6 import android.view.View;
     7 
     8 /**
     9  * Created by hp on 2020/2/16.
    10  */
    11 public class SecondActivity extends ActionBarActivity implements View.OnClickListener {
    12     protected void onCreate(Bundle savedInstanceState) {
    13         super.onCreate(savedInstanceState);
    14 
    15         setContentView(R.layout.activity_second);
    16         //初始化控件
    17         initUI();
    18     }
    19 
    20     private void initUI() {
    21         findViewById(R.id.btn_secondActivity_return).setOnClickListener(this);
    22     }
    23 
    24     @Override
    25     public void onClick(View view) {
    26         Intent intent = new Intent();
    27         switch (view.getId()){
    28             case R.id.btn_secondActivity_return:
    29                 //按返回按钮跳转到第一个界面
    30                 intent.setClass(getApplicationContext(),FirstActivity.class);
    31                 break;
    32             //按收入按钮跳转到第三个界面
    33             case R.id.btn_income:
    34                 intent.setClass(getApplicationContext(),ThirdActivity.class);
    35             case R.id.btn_output:
    36                 intent.setClass(getApplicationContext(),FouthActivity.class);
    37         }
    38         startActivity(intent);
    39     }
    40 }
     1 package com.example.hp.jizhang;
     2 
     3 import android.content.Intent;
     4 import android.os.Bundle;
     5 import android.support.v7.app.ActionBarActivity;
     6 import android.view.View;
     7 
     8 import com.example.hp.jizhang.entity.User;
     9 
    10 /**
    11  * Created by hp on 2020/2/16.
    12  */
    13 public class ThirdActivity extends ActionBarActivity implements View.OnClickListener {
    14     protected void onCreate(Bundle savedInstanceState) {
    15         super.onCreate(savedInstanceState);
    16 
    17         setContentView(R.layout.activity_third);
    18         //初始化控件
    19         initUI();
    20         //初始化数据
    21         initData();
    22 
    23     }
    24 
    25     private void initData() {
    26         User user = new User();
    27     }
    28 
    29     private void initUI() {
    30         findViewById(R.id.btn_thirdActivity_return).setOnClickListener(this);
    31     }
    32     @Override
    33     public void onClick(View view) {
    34         Intent intent = new Intent();
    35         switch (view.getId()){
    36             case R.id.btn_thirdActivity_return:
    37                 //跳转到第二个界面
    38                 intent.setClass(getApplicationContext(),SecondActivity.class);
    39                 break;
    40         }
    41         startActivity(intent);
    42 
    43     }
    44 }
     1 package com.example.hp.jizhang;
     2 
     3 import android.content.Intent;
     4 import android.os.Bundle;
     5 import android.support.v7.app.ActionBarActivity;
     6 import android.view.View;
     7 
     8 /**
     9  * Created by hp on 2020/2/16.
    10  */
    11 public class FouthActivity extends ActionBarActivity implements View.OnClickListener {
    12 
    13     protected void onCreate(Bundle savedInstanceState) {
    14         super.onCreate(savedInstanceState);
    15 
    16         setContentView(R.layout.activity_fouth);
    17         //初始化控件
    18         initUI();
    19 
    20     }
    21 
    22     private void initUI() {
    23         findViewById(R.id.btn_fouthActivity_return).setOnClickListener(this);
    24     }
    25 
    26     @Override
    27     public void onClick(View view) {
    28         Intent intent = new Intent();
    29         switch (view.getId()){
    30             case R.id.btn_fouthActivity_return:
    31                 //跳转到第二个界面
    32                 intent.setClass(getApplicationContext(),SecondActivity.class);
    33                 break;
    34         }
    35         startActivity(intent);
    36     }
    37 }

    下面是一些布局文件:

     1 <?xml version="1.0" encoding="utf-8"?>
     2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     3     xmlns:tools="http://schemas.android.com/tools"
     4     android:layout_width="match_parent"
     5     android:layout_height="match_parent"
     6     android:orientation="vertical"
     7     android:paddingBottom="@dimen/activity_vertical_margin"
     8     android:paddingLeft="@dimen/activity_horizontal_margin"
     9     android:paddingRight="@dimen/activity_horizontal_margin"
    10     android:paddingTop="@dimen/activity_vertical_margin"
    11     tools:context="com.example.hp.jizhang.MainActivity">
    12 
    13     <EditText
    14         android:id="@+id/et_phone"
    15         android:inputType="phone"
    16         android:hint="电话:"
    17         android:layout_width="match_parent"
    18         android:layout_height="wrap_content" />
    19 
    20     <EditText
    21         android:id="@+id/et_passwd"
    22         android:inputType="textPassword"
    23         android:hint="密码:"
    24         android:layout_width="match_parent"
    25         android:layout_height="wrap_content" />
    26     <CheckBox
    27         android:id="@+id/cb_remember_psd"
    28         android:text="记住账户"
    29         android:layout_width="wrap_content"
    30         android:layout_height="wrap_content" />
    31 
    32     <Button
    33         android:id="@+id/btn_denglu"
    34         android:text="登录"
    35         android:layout_width="match_parent"
    36         android:layout_height="wrap_content" />
    37 
    38 
    39 
    40 
    41 </LinearLayout>
     1 <?xml version="1.0" encoding="utf-8"?>
     2 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
     3     xmlns:tools="http://schemas.android.com/tools"
     4     android:layout_width="match_parent"
     5     android:layout_height="match_parent"
     6     android:paddingTop="@dimen/activity_vertical_margin"
     7     tools:context="com.example.hp.jizhang.FirstActivity">
     8 
     9 
    10     <TextView
    11         android:id="@+id/tv_income_month"
    12         android:layout_width="match_parent"
    13         android:layout_height="50dp"
    14         android:textSize="30dp"
    15         android:text="    本月收入:3000"
    16         android:background="@android:color/background_light"
    17         android:layout_alignParentTop="true"
    18         android:layout_alignParentLeft="true"
    19         android:layout_alignParentStart="true"
    20         android:layout_marginTop="59dp"/>
    21 
    22     <TextView
    23         android:id="@+id/tv_output_month"
    24         android:layout_width="match_parent"
    25         android:layout_height="50dp"
    26         android:textSize="30dp"
    27         android:text="     本月支出:2000"
    28         android:background="@android:color/background_light"
    29         android:layout_centerVertical="true"
    30         android:layout_alignParentLeft="true"
    31         android:layout_alignParentStart="true"/>
    32 
    33     <TextView
    34         android:id="@+id/tv_balance"
    35         android:layout_width="match_parent"
    36         android:layout_height="50dp"
    37         android:textSize="30dp"
    38         android:text="      本月余额:1000"
    39         android:background="@android:color/background_light"
    40         android:layout_above="@id/btn_add_one"
    41         android:layout_alignParentLeft="true"
    42         android:layout_alignParentStart="true"
    43         android:layout_marginBottom="66dp"/>
    44 
    45     <Button
    46         android:id="@+id/btn_add_one"
    47         android:layout_width="match_parent"
    48         android:layout_height="70dp"
    49         android:text="  +  记一笔"
    50         android:textSize="40dp"
    51         android:layout_alignParentBottom="true"
    52         android:layout_alignParentLeft="true"
    53         android:layout_alignParentStart="true"
    54         android:layout_marginBottom="47dp"/>
    55 
    56 </RelativeLayout>
     1 <?xml version="1.0" encoding="utf-8"?>
     2 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
     3     xmlns:tools="http://schemas.android.com/tools"
     4     android:layout_width="match_parent"
     5     android:layout_height="match_parent"
     6     android:background="#000000"
     7     android:padding="@dimen/activity_vertical_margin"
     8     tools:context="com.example.hp.jizhang.SecondActivity">
     9 
    10 
    11     <Button
    12         android:id="@+id/btn_secondActivity_return"
    13         android:layout_width="80dp"
    14         android:layout_height="50dp"
    15         android:text="返回"
    16         android:layout_alignParentTop="true"
    17         android:layout_alignParentLeft="true"
    18         android:layout_alignParentStart="true" />
    19     <EditText
    20         android:id="@+id/et_put_money"
    21         android:layout_width="match_parent"
    22         android:layout_height="40dp"
    23         android:textColor="#870c0c"
    24         android:hint="请输入金额:"
    25         android:background="#9bc9e1"
    26         android:textSize="20dp"
    27         android:layout_marginTop="44dp"
    28         android:layout_below="@id/tv_money"
    29         android:layout_alignParentLeft="true"
    30         android:layout_alignParentStart="true" />
    31     <TextView
    32         android:id="@+id/tv_money"
    33         android:layout_width="match_parent"
    34         android:layout_height="40dp"
    35         android:text="金额"
    36         android:textColor="#f9f6f6"
    37         android:textSize="20dp"
    38         android:layout_marginTop="35dp"
    39         android:layout_below="@id/btn_secondActivity_return"
    40         android:layout_alignParentLeft="true"
    41         android:layout_alignParentStart="true"/>
    42 
    43     <Button
    44         android:id="@+id/btn_output"
    45         android:layout_width="match_parent"
    46         android:layout_height="70dp"
    47         android:text="支出"
    48         android:textColor="#f04b4b"
    49         android:layout_alignParentBottom="true"
    50         android:layout_alignParentLeft="true"
    51         android:layout_alignParentStart="true" />
    52     <Button
    53         android:id="@+id/btn_income"
    54         android:layout_width="match_parent"
    55         android:layout_height="60dp"
    56         android:text="收入"
    57         android:textColor="#6597ed"
    58         android:layout_above="@id/btn_output"
    59         android:layout_alignParentLeft="true"
    60         android:layout_alignParentStart="true"
    61         android:layout_marginBottom="45dp" />
    62 
    63 
    64 </RelativeLayout>
     1 <?xml version="1.0" encoding="utf-8"?>
     2 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
     3     xmlns:tools="http://schemas.android.com/tools"
     4     android:layout_width="match_parent"
     5     android:layout_height="match_parent"
     6     android:padding="@dimen/activity_vertical_margin"
     7     tools:context="com.example.hp.jizhang.ThirdActivity">
     8 
     9     <Button
    10         android:id="@+id/btn_thirdActivity_return"
    11         android:layout_width="80dp"
    12         android:layout_height="50dp"
    13         android:text="返回"
    14         android:layout_alignParentTop="true"
    15         android:layout_alignParentLeft="true"
    16         android:layout_alignParentStart="true" />
    17     <TextView
    18         android:id="@+id/tv_income_all"
    19         android:layout_width="match_parent"
    20         android:layout_height="40dp"
    21         android:text="收入总额:"
    22         android:textColor="#726f6f"
    23         android:textSize="30dp"
    24         android:background="#000000"
    25         android:layout_below="@id/btn_thirdActivity_return"
    26         android:layout_alignParentRight="true"
    27         android:layout_alignParentEnd="true"
    28         android:layout_marginTop="31dp"/>
    29     <EditText
    30         android:id="@+id/et_income_money"
    31         android:layout_width="match_parent"
    32         android:layout_height="100dp"
    33         android:textColor="#870c0c"
    34         android:hint="收入金额(¥):"
    35         android:layout_below="@id/tv_income_all"
    36         android:layout_alignParentLeft="true"
    37         android:layout_alignParentStart="true"
    38         android:layout_marginTop="41dp" />
    39 
    40     <EditText
    41         android:id="@+id/et_income_nature"
    42         android:layout_width="match_parent"
    43         android:layout_height="100dp"
    44         android:textColor="#870c0c"
    45         android:hint="收入类型:"
    46         android:layout_marginBottom="35dp"
    47         android:layout_alignParentBottom="true"
    48         android:layout_alignParentRight="true"
    49         android:layout_alignParentEnd="true" />
    50 
    51 </RelativeLayout>
     1 <?xml version="1.0" encoding="utf-8"?>
     2 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
     3     xmlns:tools="http://schemas.android.com/tools"
     4     android:layout_width="match_parent"
     5     android:layout_height="match_parent"
     6     android:padding="@dimen/activity_vertical_margin"
     7     tools:context="com.example.hp.jizhang.FouthActivity">
     8 
     9     <Button
    10         android:id="@+id/btn_fouthActivity_return"
    11         android:layout_width="80dp"
    12         android:layout_height="50dp"
    13         android:text="返回"
    14         android:layout_alignParentTop="true"
    15         android:layout_alignParentLeft="true"
    16         android:layout_alignParentStart="true" />
    17 
    18     <TextView
    19         android:id="@+id/tv_output_all"
    20         android:layout_width="match_parent"
    21         android:layout_height="40dp"
    22         android:text="支出总额:"
    23         android:textColor="#726f6f"
    24         android:textSize="30dp"
    25         android:background="#000000"
    26         android:layout_below="@id/btn_fouthActivity_return"
    27         android:layout_alignParentLeft="true"
    28         android:layout_alignParentStart="true"
    29         android:layout_marginTop="71dp"/>
    30     <EditText
    31         android:id="@+id/et_output_money"
    32         android:layout_width="match_parent"
    33         android:layout_height="100dp"
    34         android:textColor="#870c0c"
    35         android:hint="支出金额(¥):"
    36         android:layout_below="@id/tv_output_all"
    37         android:layout_alignParentLeft="true"
    38         android:layout_alignParentStart="true"
    39         android:layout_marginTop="32dp" />
    40 
    41     <EditText
    42         android:id="@+id/et_output_nature"
    43         android:layout_width="match_parent"
    44         android:layout_height="100dp"
    45         android:textColor="#870c0c"
    46         android:hint="支出类型:"
    47         android:layout_marginBottom="50dp"
    48         android:layout_alignParentBottom="true"
    49         android:layout_alignParentLeft="true"
    50         android:layout_alignParentStart="true" />
    51 
    52 
    53 
    54 
    55 </RelativeLayout>
     1 <?xml version="1.0" encoding="utf-8"?>
     2 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
     3     package="com.example.hp.jizhang">
     4 
     5     <application
     6         android:allowBackup="true"
     7         android:icon="@mipmap/ic_launcher"
     8         android:label="@string/app_name"
     9         android:supportsRtl="true"
    10         android:theme="@style/AppTheme">
    11         <activity android:name=".MainActivity">
    12             <intent-filter>
    13                 <action android:name="android.intent.action.MAIN" />
    14 
    15                 <category android:name="android.intent.category.LAUNCHER" />
    16             </intent-filter>
    17         </activity>
    18         <activity android:name=".FirstActivity">
    19 
    20         </activity>
    21         <activity android:name=".SecondActivity">
    22 
    23         </activity>
    24         <activity android:name=".ThirdActivity">
    25 
    26         </activity>
    27         <activity android:name=".FouthActivity">
    28 
    29         </activity>
    30     </application>
    31 
    32 </manifest>
  • 相关阅读:
    初窥Opencv
    24课时VC之思考>编辑控件
    24课时VC之思考>列表框与组合框
    递归归并排序 思想 JAVA实现
    插入排序 思想 JAVA实现
    AJAX发送json,SpringMVC 接收JSON,@RequestBody
    SpringBoot设置默认启动页的2种方式
    选择排序 思想 JAVA实现
    快速排序(一) 思想 JAVA实现
    spring security之logoutHandler中的CookieClearingLogoutHandler
  • 原文地址:https://www.cnblogs.com/mxk123456/p/12319387.html
Copyright © 2011-2022 走看看