Android实例一
一般只对这五个内容进行改变就可
MainActivity
package com.example.test01;//生成项目时自带
import android.app.Activity;
import android.app.DatePickerDialog;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.DatePicker;
import android.widget.EditText;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.Toast;
public class MainActivity extends Activity {
EditText et_birthday;
//SharedPreferences对象,用于轻量级数据存储
private SharedPreferences sp;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 获取到轻量级存储对象
sp = getSharedPreferences("listDate", MODE_PRIVATE);
//日期获取
et_birthday = findViewById(R.id.et_birthday);
//点击日历选择日期
et_birthday.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
new DatePickerDialog(MainActivity.this, new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
// 此处得到选择的时间,可以进行你想要的操作
String time = year + "-" + (monthOfYear + 1) + "-" + dayOfMonth;
et_birthday.setText(time);
}
}
// 设置初始日期
, 2021, 10, 10).show();
}
});
Button bt_submit = findViewById(R.id.bt_submit);
//保存按钮的点击事件
bt_submit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
SharedPreferences.Editor editor = sp.edit();//必须创建在里面,不能创建在外面
StringBuilder sb = new StringBuilder();
//创建Stringbuilder对象,用于存储字符串便利
//用户名
EditText et_username = findViewById(R.id.et_username);
sb.append("用户名:" + et_username.getText());
editor.putString("name", et_username.getText().toString());
//口令
EditText et_password = findViewById(R.id.et_password);
sb.append(",口令:" + et_password.getText());
editor.putString("pass", et_password.getText().toString());
//专业
RadioGroup rg_major = findViewById(R.id.rg_major);
RadioButton rb = findViewById(rg_major.getCheckedRadioButtonId());
//getCheckedRadioButtonId 得到被cheked的按钮的id
sb.append(",专业:" + rb.getText());
editor.putString("major", rb.getText().toString());
//爱好
sb.append(",爱好:");
CheckBox cb = findViewById(R.id.cb_net);
if (cb.isChecked()) {
sb.append(cb.getText());
editor.putString("hobby1", cb.getText().toString());
} else {
editor.putString("hobby1", "empty");
}
cb = findViewById(R.id.cb_sports);
if (cb.isChecked()) {
sb.append(cb.getText());
editor.putString("hobby2", cb.getText().toString());
} else {
editor.putString("hobby2", "empty");
}
cb = findViewById(R.id.cb_reading);
if (cb.isChecked()) {
sb.append(cb.getText());
editor.putString("hobby3", cb.getText().toString());
} else {
editor.putString("hobby3", "empty");
}
//设置生日
sb.append("出生日期:" + et_birthday.getText().toString());
editor.putString(",birthday", et_birthday.getText().toString());
//显示到屏幕上
Toast.makeText(MainActivity.this, sb.toString(), Toast.LENGTH_LONG).show();
editor.commit();
//提交
}
});
//恢复按钮
Button bt_read = (Button) findViewById(R.id.bt_read);
bt_read.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String name = sp.getString("name", "");
String pass = sp.getString("pass", "");
String major = sp.getString("major", "");
String hobby1 = sp.getString("hobby1", "");
String hobby2 = sp.getString("hobby2", "");
String hobby3 = sp.getString("hobby3", "");
String birthday = sp.getString("birthday", "");
//恢复用户名
EditText et_username = findViewById(R.id.et_username);
et_username.setText(name);
//恢复口令
EditText et_password = findViewById(R.id.et_password);
et_password.setText(pass);
//恢复专业
RadioGroup group_major = (RadioGroup) findViewById(R.id.rg_major);
RadioButton rb = findViewById(group_major.getCheckedRadioButtonId());
rb.setChecked(false);
if (major.equals("软件")) {//不能直接用major=="软件"
group_major.check(R.id.rd_soft);
} else if (major.equals("物联网")) {
group_major.check(R.id.rd_net);
} else if (major.equals("计算机")) {
group_major.check(R.id.rd_computer);
} else if (major.equals("大数据")) {
group_major.check(R.id.rd_info);
}
//恢复爱好
CheckBox cb_net = (CheckBox) findViewById(R.id.cb_net);
CheckBox cb_sports = (CheckBox) findViewById(R.id.cb_sports);
CheckBox cb_reading = (CheckBox) findViewById(R.id.cb_reading);
if (hobby1.equals("上网")) {
cb_net.setChecked(true);
}
if (hobby2.equals("运动")) {
cb_sports.setChecked(true);
}
if (hobby3.equals("读书")) {
cb_reading.setChecked(true);
}
//回复生日
EditText et_birthday = (EditText) findViewById(R.id.et_birthday);
et_birthday.setText(birthday);
}
});
Button bt_next = (Button) findViewById(R.id.bt_next);
bt_next.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//创建intent对象,进行跳转
Intent intent = new Intent();
intent.setClass(MainActivity.this, SecondActivity.class);
startActivity(intent);
//如果不关闭当前的会出现好多个页面
MainActivity.this.finish();
}
});
}
}
SecondActivity
package com.example.test01;//生成项目时自带
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class SecondActivity extends Activity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.secondactivity_page);
Button bt_back = (Button)findViewById(R.id.bt_back);
bt_back.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//跳转
Intent intent = new Intent();
intent.setClass(SecondActivity.this, MainActivity.class);
startActivity(intent);
//如果不关闭当前的会出现好多个页面
SecondActivity.this.finish();
}
});
}
}
activity_main.xml(建议用可视化编程写)
<ScrollView
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" >
<LinearLayout
android:id="@+id/LinearLayout1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
tools:context="com.example.test01.MainActivity" >
<EditText
android:id="@+id/et_username"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="请输入用户名" />
<EditText
android:id="@+id/et_password"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="请输入口令"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="专业"/>
<RadioGroup
android:id="@+id/rg_major"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<RadioButton
android:id="@+id/rd_soft"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checked="true"
android:text="软件" />
<RadioButton
android:id="@+id/rd_net"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="物联网" />
<RadioButton
android:id="@+id/rd_computer"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="计算机" />
<RadioButton
android:id="@+id/rd_info"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="大数据" />
</RadioGroup>
<TextView
android:id="@+id/tv_major"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="爱好"/>
<CheckBox
android:id="@+id/cb_net"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="上网" />
<CheckBox
android:id="@+id/cb_sports"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="运动" />
<CheckBox
android:id="@+id/cb_reading"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="读书" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="出生日期"/>
<EditText
android:id="@+id/et_birthday"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="textPersonName" />
<Button
android:id="@+id/bt_submit"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="保存数据到文件" />
<Button
android:id="@+id/bt_read"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="从文件读取数据" />
<Button
android:id="@+id/bt_next"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="下一页" />
</LinearLayout>
</ScrollView>
secondactivity_page.xml(建议用可视化编程写)
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TextView
android:id="@+id/textView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="第二页面" />
<Button
android:id="@+id/bt_back"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="返回" />
</LinearLayout>
</LinearLayout>
可视化编程写
AndroidManifest.xml//系统自动生成的
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.test01">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<android:name=".SecondActivity"/><!--只要加这一个页面就行-->
</application>
</manifest>