顯示一個新的屏幕,在這個屏幕上輸入一段話,然後再返回到原先的界面顯示剛纔輸入的那句話。
注意:在第節中頁面跳轉中有一個MainActivity.this.startActivity(intent);這是無返回值的打開頁面,如果想要得到有返回值的頁面就要改爲MainActivity.this.startActivityForResult(intent, 0);
已經可以調出新Activity了,我們看一下執行的結果
想要把輸入的值返回到原來的那個頁面,就一定要在“返回”按鍵中加入點什麼代碼,如下:
class myButtonOAReturnimplementsandroid.view.View.OnClickListener {
@Override
public void onClick(View v) {
String sEdit = sEditText.getText().toString();
SharedPreferences sp = getSharedPreferences("text", 0);
SharedPreferences.Editor editor = sp.edit();
editor.putString("text", sEdit);
if (editor.commit()) {
setResult(RESULT_OK);
}
finish();
}
}
這裏的關鍵是SharedPreferences對象,這是在多個Activity(同一包中)共享數據的方式,本質上它就是一個可以在包的範圍內進行數據共享的文件。
我們通過一個標籤“text”獲得了和文本相關的那個SharedPreferences對象(“text”僅僅是自己定義的一個標籤),然後給它賦予一個“text”對象值爲當前文本框中輸入的文本。設置完成以後,設置當前Activity的執行結果爲RESULT_OK,再關閉當前的Activity,剩下的事情就可以回到MainActivity這個主界面中去執行了。
MainActivity裏面是不是應該有一個接收這個數據的代碼呢?如下:
@Override
protected void onActivityResult(int requestCode,int resultCode, Intent data) {
if (requestCode == 0 && resultCode == Activity.RESULT_OK) {
SharedPreferences sp = getSharedPreferences("text", 0);
maedReveice.setText(sp.getString("text",null));
}
}
我們重寫了onActivityResult方法。