第十一,十二周作业
图片一 用内部存储实现文件写入和读取功能
<?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" android:orientation="vertical"> <EditText android:id="@+id/et_xieru" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="请输入你想写入的内容" android:textSize="30dp" android:layout_marginTop="20dp"/> <Button android:id="@+id/bt_xieru" android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="click1" android:text="写入" android:textSize="30dp" android:layout_marginLeft="20dp" /> <EditText android:id="@+id/et_duqu" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="显示读取的内容" android:textSize="30dp" android:layout_marginTop="20dp"/> <Button android:id="@+id/bt_duqu" android:layout_width="wrap_content" android:layout_height="wrap_content"
package com.example.myapplica; import android.os.Bundle; import android.view.View; import android.widget.EditText; import android.widget.Toast; import androidx.appcompat.app.AppCompatActivity; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } public void click1(View view) { EditText editText1 = findViewById(R.id.et_xieru); String filename = "data.txt"; String context = editText1.getText().toString(); FileOutputStream fos = null; try { fos = openFileOutput(filename, MODE_PRIVATE); fos.write(context.getBytes()); } catch (Exception e) { e.printStackTrace(); } finally { if (fos != null) { try { fos.close(); } catch (IOException e) { e.printStackTrace(); } } } Toast.makeText(this, "保存成功", Toast.LENGTH_LONG).show(); } public void click2(View view) { EditText editText2 = findViewById(R.id.et_duqu); String context = ""; FileInputStream fis = null; try { fis = openFileInput("data.txt"); byte[] buffer = new byte[fis.available()]; fis.read(buffer); context = new String(buffer); } catch (Exception e) { e.printStackTrace(); } finally { if (fis != null) { try { fis.close(); } catch (IOException e) { e.printStackTrace(); } } } editText2.setText(context); } }
android:onClick="click2" android:text="读取" android:textSize="30dp" android:layout_marginLeft="20dp" /> </LinearLayout>
图片二 使用sharedpreference实现记住密码功能
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <!-- <TextView--> <!-- android:layout_width="wrap_content"--> <!-- android:layout_height="wrap_content"--> <!-- android:text="Hello World!"--> <!-- app:layout_constraintBottom_toBottomOf="parent"--> <!-- app:layout_constraintLeft_toLeftOf="parent"--> <!-- app:layout_constraintRight_toRightOf="parent"--> <!-- app:layout_constraintTop_toTopOf="parent" />--> <TextView android:id="@+id/tv1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="账号" android:textSize="25dp" android:layout_margin="10dp"/> <EditText android:id="@+id/et1" android:layout_width="300dp" android:layout_height="wrap_content" android:hint="请输入用户名" android:layout_toRightOf="@id/tv1"/> <TextView android:id="@+id/tv2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="密码" android:textSize="25dp" android:layout_margin="10dp" android:layout_below="@id/tv1"/> <EditText android:id="@+id/et2" android:layout_width="300dp" android:layout_height="wrap_content" android:hint="请输入密码" android:layout_toRightOf="@id/tv2" android:layout_below="@id/et1" android:layout_marginTop="10dp"/> <CheckBox android:id="@+id/cb1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@id/tv2" android:onClick="cbclick"/> <TextView android:id="@+id/tv3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="记住密码" android:layout_toRightOf="@id/cb1" android:layout_below="@id/tv2" android:textSize="20dp"/> <CheckBox android:id="@+id/cb2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@id/tv2" android:layout_toRightOf="@id/tv3"/> <TextView android:id="@+id/tv4" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="自动登录" android:layout_toRightOf="@id/cb2" android:layout_below="@id/tv2" android:textSize="20dp" /> <Button android:id="@+id/bt1" android:layout_width="100dp" android:layout_height="50dp" android:text="登录" android:layout_toRightOf="@id/tv4" android:layout_below="@id/et2" android:onClick="btclick"/> </RelativeLayout>
package com.example.myapp; import androidx.appcompat.app.AppCompatActivity; import android.view.View; import android.widget.EditText; import android.content.SharedPreferences; import android.os.Bundle; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } public void btclick(View view){ String et1=((EditText)(findViewById(R.id.et1))).getText().toString(); String et2=((EditText)(findViewById(R.id.et2))).getText().toString(); SharedPreferences sp=getSharedPreferences("cdate",MODE_PRIVATE); SharedPreferences.Editor editor=sp.edit(); editor.putString("zh", et1); editor.putString("mm", et2); editor.commit(); } public void cbclick(View view){ SharedPreferences sp=getSharedPreferences("cdate", MODE_PRIVATE); String zh=sp.getString("zh", ""); String mm=sp.getString("mm", ""); EditText et1=(EditText)findViewById(R.id.et1); EditText et2=(EditText)findViewById(R.id.et2); et1.setText(zh); et2.setText(mm); } }