功能:

可記錄上次輸入之訊息,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();
}

};
}

 

 

創作者介紹
創作者 Noneway的菜鳥筆記 的頭像
Noneway

Noneway的菜鳥筆記

Noneway 發表在 痞客邦 留言(0) 人氣( 142 )