탐색 중에 여러 활동에 대한 데이터를 저장하는 방법을 알고 싶었습니다.여러 Android 환경에서 데이터 저장
내 응용 프로그램에 2 개의 양식이 있습니다. account details
과 personal details
은 각각 자체 활동을합니다. 사용자가 account details
활동에서 next
버튼을 클릭하면 활동이 personal details
번으로 이동합니다. personal details
활동에는 사용자를 account details
활동으로 되돌리기위한 뒤로 버튼이 있습니다. 내가 원하는 무엇
는 사용자가 next
버튼을 클릭하면 사용자가 account details
활동에 반환 할 때이 표시 될 수 있도록, 그것은 account details
활동에 데이터를 저장하는 것입니다. 또한 사용자가 personal details
활동에 데이터를 입력하고 back
을 클릭하여 account details
활동으로 다시 이동하면 사용자가 personal details
활동으로 다시 이동하면 자신의 데이터를 찾을 수 있도록 personal details
활동의 데이터를 저장해야합니다.
은 내가 무슨 짓을하는 것은 onActivityResult
메소드를 오버라이드 (override)과 같이 account details
활동에 데이터를 저장하기위한 몇 가지 방법을 추가 :
package com.example.karyukie.application;
import android.app.Activity;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.text.InputType;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast;
public class AccountDetails extends AppCompatActivity {
EditText usernameSignUp, newPwd, confirmPwd, securityA;
Spinner securityQ;
private static final String USERNAME_SIGN_UP = "usernameSignUp_key";
private static final String PWD_SIGN_UP = "pwdSignUp_key";
private static final String SECURITY_Q = "securityQ_key";
private static final String SECURITY_A = "securityA_key";
@Override
protected void onCreate(Bundle savedInstanceState) {
usernameSignUp = (EditText) findViewById(R.id.usernameSignUp_editText);
newPwd = (EditText) findViewById(R.id.newPwd_editText);
confirmPwd = (EditText) findViewById(R.id.confirmPwd_editText);
securityQ = (Spinner) findViewById(R.id.securityQ_spinner);
securityA = (EditText) findViewById(R.id.securityA_editText);
securityQ.setSelection(9);
Button next = (Button) findViewById(R.id.next_button);
assert next != null;
next.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Bundle accountDetails_data = saveData();
Intent intent = new Intent(getApplicationContext(), PersonalDetails.class);
intent.putExtras(accountDetails_data);
startActivityForResult(intent, 1);
}
}
});
public Bundle saveData() {
String usernameSignUp_value = usernameSignUp.getText().toString();
String pwdSignUp_value = newPwd.getText().toString();
int securityQ_value = securityQ.getSelectedItemPosition();
String securityA_value = securityA.getText().toString();
Bundle data = new Bundle();
data.putString(USERNAME_SIGN_UP, usernameSignUp_value);
data.putString(PWD_SIGN_UP, pwdSignUp_value);
data.putInt(SECURITY_Q, securityQ_value);
data.putString(SECURITY_A, securityA_value);
return data;
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if(requestCode == 1) {
if(resultCode == Activity.RESULT_OK) {
usernameSignUp.setText(data.getStringExtra(USERNAME_SIGN_UP));
newPwd.setText(data.getStringExtra(PWD_SIGN_UP));
confirmPwd.setText(data.getStringExtra(PWD_SIGN_UP));
securityQ.setSelection(data.getIntExtra(SECURITY_Q, 10));
securityA.setText(data.getStringExtra(SECURITY_A));
}
}
}
그리고 personal details
활동
Button back = (Button) findViewById(R.id.back_button);
assert back != null;
back.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Bundle data = getIntent().getExtras();
Intent intent = new Intent();
intent.putExtras(data);
setResult(Activity.RESULT_OK, intent);
finish();
}
});
이가 보인다 잘 작동하지만 이전에 설명한대로 personal details
활동으로 데이터를 저장하는 방법을 파악할 수 없습니다.
인 텐트는 활동간에 데이터를 전송하는 데 적합하지만 앱 전체에 영구 저장을위한 옵션이 더 있습니다. https://developer.android.com/training/basics/data-storage/index.html –