今天没有学习新的知识,把前面所学的复习了一下,今天做了一个简单的记账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>
来源:https://www.cnblogs.com/mxk123456/p/12319387.html