功能:
可記錄上次輸入之訊息,APP關掉也不會消失
<XML>
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="textPersonName"
android:text="Name"
android:ems="10"
android:id="@+id/editName"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Login"
android:id="@+id/btLogin"
android:layout_below="@+id/editName"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="Medium Text"
android:id="@+id/txtMsg"
android:layout_below="@+id/btLogin"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_marginTop="46dp" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Logout"
android:id="@+id/btLogout"
android:layout_alignBottom="@+id/btLogin"
android:layout_toRightOf="@+id/btLogin"
android:layout_toEndOf="@+id/btLogin" />
<code>
public class MainActivity extends AppCompatActivity {
EditText editName = null;
Button btLogin = null;
Button btLogout = null;
TextView txtMsg = null;
private SharedPreferences settings;
private static final String data = "DATA";
private static final String nameField = "NAME";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
editName = (EditText) findViewById(R.id.editName);
btLogin = (Button)findViewById(R.id.btLogin);
btLogout = (Button)findViewById(R.id.btLogout);
txtMsg = (TextView)findViewById(R.id.txtMsg);
btLogin.setOnClickListener(loginOnClick);
btLogout.setOnClickListener(logoutOnClick);
readData();
}
public void readData(){
settings = getSharedPreferences(data,0);
editName.setText(settings.getString(nameField, ""));
if(settings.getString(nameField, "").length() == 0){
txtMsg.setText("未登入");
btLogout.setVisibility(View.INVISIBLE);
btLogin.setVisibility(View.VISIBLE);
editName.setVisibility(View.VISIBLE);
}else{
txtMsg.setText("已登入");
btLogout.setVisibility(View.VISIBLE);
btLogin.setVisibility(View.INVISIBLE);
editName.setVisibility(View.INVISIBLE);
}
}
public void saveData(){
settings = getSharedPreferences(data,0);
settings.edit()
.putString(nameField, editName.getText().toString())
.commit();
}
private Button.OnClickListener loginOnClick = new Button.OnClickListener(){
public void onClick(View view){
saveData();
readData();
}
};
private Button.OnClickListener logoutOnClick = new Button.OnClickListener(){
public void onClick(View view){
editName.setText("");
saveData();
readData();
}
};
}
請先 登入 以發表留言。