[英]Android:How to save values in EditText when returning to an Activity
我正在嘗試保存輸入到表單的值,以便當用戶返回活動時,輸入的內容仍然填充。 因為它現在運作。 用戶可以輸入詳細信息並單擊“發送按鈕”。 然后,下一個活動將顯示用戶輸入的詳細信息。 如果用戶選擇“后退按鈕”,則用戶返回先前的活動,但是從表單中的字段中擦除內容。 任何建議,將不勝感激。
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.widget.EditText;
public class MainActivity extends Activity {
public final static String EXTRA_FROM = "com.example.assignment1.FROM";
public final static String EXTRA_TO = "com.example.assignment1.TO";
public final static String EXTRA_CC = "com.example.assignment1.CC";
public final static String EXTRA_SUBJECT = "com.example.assignment1.SUBJECT";
public final static String EXTRA_COMPOSE = "com.example.assignment1.COMPOSE";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
@Override
protected void onSaveInstanceState(Bundle outState)
{
super.onSaveInstanceState(outState);
EditText emailFrom =(EditText) findViewById(R.id.editEmailFrom);
String from = emailFrom.getText().toString();
outState.putString(EXTRA_FROM, from);
}
@Override
protected void onRestoreInstanceState(Bundle savedState)
{
EditText emailFrom =(EditText) findViewById(R.id.editEmailFrom);
String from = savedState.getString(EXTRA_FROM);
emailFrom.setText(from);
}
public void emailSend (View sendButton)
{
Intent intent = new Intent(this,DisplayEmailActivity.class);
EditText emailFrom =(EditText) findViewById(R.id.editEmailFrom);
EditText emailTo =(EditText) findViewById(R.id.editEmailTo);
EditText emailCc =(EditText) findViewById(R.id.editEmailCc);
EditText emailSubject =(EditText) findViewById(R.id.editEmailSubject);
EditText emailCompose =(EditText) findViewById(R.id.editEmailCompose);
String from = emailFrom.getText().toString();
String to = emailTo.getText().toString();
String cc = emailCc.getText().toString();
String subject = emailSubject.getText().toString();
String compose = emailCompose.getText().toString();
intent.putExtra(EXTRA_FROM,from);
intent.putExtra(EXTRA_TO,to);
intent.putExtra(EXTRA_CC,cc);
intent.putExtra(EXTRA_SUBJECT,subject);
intent.putExtra(EXTRA_COMPOSE,compose);
startActivity(intent);
}
public void emailClear (View clearButton) {
((EditText) findViewById(R.id.editEmailFrom)).setText("");
((EditText) findViewById(R.id.editEmailTo)).setText("");
((EditText) findViewById(R.id.editEmailCc)).setText("");
((EditText) findViewById(R.id.editEmailBcc)).setText("");
((EditText) findViewById(R.id.editEmailSubject)).setText("");
((EditText) findViewById(R.id.editEmailCompose)).setText("");
}
}
第二次活動......
public class DisplayEmailActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_display_email);
Intent intent = getIntent();
String from = intent.getStringExtra(MainActivity.EXTRA_FROM);
String to = intent.getStringExtra(MainActivity.EXTRA_TO);
String cc = intent.getStringExtra(MainActivity.EXTRA_CC);
String subject = intent.getStringExtra(MainActivity.EXTRA_SUBJECT);
String compose = intent.getStringExtra(MainActivity.EXTRA_COMPOSE);
TextView textFrom =(TextView)findViewById(R.id.displayEmailFrom);
TextView textTo =(TextView)findViewById(R.id.displayEmailTo);
TextView textCc =(TextView)findViewById(R.id.displayEmailCc);
TextView textSubject =(TextView)findViewById(R.id.displayEmailSubject);
TextView textCompose =(TextView)findViewById(R.id.displayEmailCompose);
textFrom.setText(from);
textTo.setText(to);
textCc.setText(cc);
textSubject.setText(subject);
textCompose.setText(compose);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_display_email, menu);
return true;
}
public void emailBack (View backButton){
Intent intent = new Intent(this,MainActivity.class);
startActivity (intent);
}
}
emailBack
開始一項全新的活動。 只是打電話給finish
使用共享首選項...要創建字符串值,請使用 -
String string12 = getSharedPreferences("PREFERENCE", MODE_PRIVATE).getString("butname12", " ");
如果你想改變它或重寫 -
getSharedPreferences("PREFERENCE", MODE_PRIVATE)
.edit()
.putString("butname12", "0" )
.commit();
要稱保存價值的含義 -
String ss = getSharedPreferences("PREFERENCE", MODE_PRIVATE).getString("butname12", " ");
替換這樣的方法,
public void emailBack (View backButton){
onBackPressed();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.