package com.lindingdu.app04;
import android.content.Intent;
import android.content.SharedPreferences;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
private String Lindingdu="Lindingdu",heat3534331="heat3534331";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button login=findViewById(R.id.login);
final EditText passwordET=findViewById(R.id.password);
final EditText usernameET=findViewById(R.id.username);
//本应用权限,指定保存文件名Lindingdu
final SharedPreferences sp=getSharedPreferences("Lindingdu",MODE_PRIVATE);
//自动登录功能
String username=sp.getString("username",null);
String password=sp.getString("password",null);
if(password!=null&&username!=null) {
if (username.equals(Lindingdu) && password.equals(heat3534331)) {
Intent intent = new Intent(MainActivity.this, messageActivity.class);
startActivity(intent);
}
}else { //实现手动登录并储存密码
login.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String in_username=usernameET.getText().toString();//获取账号密码
String in_password=passwordET.getText().toString();
SharedPreferences.Editor editor=sp.edit();//获取Editor对象保存账号密码
if (in_password.equals(heat3534331)&&in_username.equals(Lindingdu)){
editor.putString("username",in_username);
editor.putString("password",in_password);
editor.commit();
startActivity(new
Intent(MainActivity.this,messageActivity.class));
Toast.makeText(MainActivity.this, "账号密码已保存"
, Toast.LENGTH_SHORT).show();
}else {
Toast.makeText(MainActivity.this, "密码错误", Toast.LENGTH_SHORT).show();
}
}
});
}
}
}
java中规定,内部类只能访问外部类中的成员变量,不能访问方法中定义的变量,如果要访问方法中的变量,就要把方法中的变量声明为final(常量)的,因为这样可以使变量全局化,就相当于是在外部定义的而不是在方法里定义的
Variable is accessed from within inner class, needs to be declared final
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class MainActivity extends AppCompatActivity {
byte[]buffer=null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button btn_save=findViewById(R.id.btn_save);
Button btn_cancel=findViewById(R.id.btn_cancel);
final EditText editText=findViewById(R.id.editText);
btn_save.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String str=editText.getText().toString();//获取EditText信息
FileOutputStream fos=null;
try {
fos=openFileOutput("a",MODE_PRIVATE);//获得文件输出流对象
fos.write(str.getBytes());//保存信息
fos.flush();//清除缓存
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally {
if (fos != null) {
try {
fos.close();//关闭输出流
Toast.makeText(MainActivity.this, "保存成功!", Toast.LENGTH_SHORT).show();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
});
// 读取信息
FileInputStream fis=null;
try {
fis=openFileInput("a");//获取文件输入流对象
buffer=new byte[fis.available()];//实例化字节数组
fis.read(buffer);//从输入流中读取数据到字节数组中
buffer.toString();//不能用toSting要用new String()
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally {
if (fis!=null) {
try {
fis.close();
String string = new String(buffer);//字节数组转化为字符串
editText.setText(string);//将转化的字符串显示出来
} catch (IOException e) {
e.printStackTrace();
}
}
}
btn_cancel.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish();//退出当前应用
}
});
}
}
import android.os.Environment;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class MainActivity extends AppCompatActivity {
byte[]buffer=null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button btn_save=findViewById(R.id.btn_save);
Button btn_cancel=findViewById(R.id.btn_cancel);
TextView textView=findViewById(R.id.textView);
final EditText editText=findViewById(R.id.editText);
final File file=new File(Environment.getExternalStorageDirectory(),"a.txt");//实例化文件对象
btn_save.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
FileOutputStream fos=null;
String etext=editText.getText().toString();
try {
fos=new FileOutputStream(file);
fos.write(etext.getBytes());
fos.flush();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally {
if(fos!=null){
try {
fos.close();
Toast.makeText(MainActivity.this, "保存成功", Toast.LENGTH_SHORT).show();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
});
//读取保存的信息并显示
FileInputStream fis=null;
try {
fis=new FileInputStream(file);
buffer=new byte[fis.available()];
fis.read(buffer);
String string=new String(buffer);
textView.setText(string);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally {
if (fis!=null) {
try {
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
btn_cancel.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
}
}