2011-12-22 57 views
0

基本上,我目前正在試圖在屏幕上顯示一些按鈕,點擊它們時,用戶將使用EditText字段和完成按鈕。一旦數據輸入完成,它會返回並更改按鈕文本的名稱。我用這個鏈接幫我How to pass EditText to another activity?。我遇到的問題是有一次我點擊不同的按鈕並輸入信息,並返回它忘記了以前的按鈕數據。我有一個字符串,所以只有點擊的按鈕被編輯,所以我認爲它不存儲數據。我花了很多年嘗試不同的解決方案,使它保存狀態,但似乎沒有任何工作。在一個活動上使用EditText來更改另一個活動上的按鈕文本

我對Android非常陌生,所以我很清楚解決方案可能非常簡單,而且我剛剛實現了錯誤。

與按鈕活動的代碼是這樣的:

public void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
this.requestWindowFeature(Window.FEATURE_NO_TITLE); 
setContentView(R.layout.edit); 
setupViews(); 
setupListeners(); 
mIntentString = savedInstanceState != null ? 
savedInstanceState.getString("myKey"):null; 
if(mIntentString == null){ 
Bundle extras = getIntent().getExtras(); 
mIntentString = extras != null ? extras.getString("myKey") : "Choose name"; 
} 
if(ActivityController.button == "1"){ 
button1.setText(mIntentString); 
Log.e(button, "button1 being checked"); 
} 

... 

@Override 
public void onClick(View view){ 
if (view == button1) { 
Intent i = new Intent(); 
i.setClass(ActivityEdit.this, ActivityEnterInfo.class); 
startActivity(i); 
}} 

... 

public void refreshButtons() 
{ 
if(ActivityController.button == "1"){ 
mIntentString = button1.getText().toString(); 
Intent intent = new Intent(); 
intent.putExtra("returnKey",button1.getText().toString()); 
setResult(RESULT_OK,intent); 
} 

我希望這一切是有道理的,我真的打這個磚牆和需要幫助

回答

0

從我的理解,你想要的是保存你的按鈕的狀態,並在你回來時恢復它們。

您應該重寫onStart()onPause()在你的按鈕活動來保存私有成員按鍵數據,然後覆蓋onStop()onResume()並用它來恢復你的數據。

+0

我在一個完全錯誤的道路上與我在做什麼,因爲這使我在正確的軌道上,我將信貸在這裏。謝謝 :) – Seperot 2012-01-10 15:50:17

0

我對這個問題的方法是使用sharedpreferences。當您在下一個屏幕中完成任務並且想要在按鈕上顯示文本時,請將按鈕文本保存在sharedpreferences中,請檢查sharedPrefrenes中是否存在數據。 並據此顯示文字。

〜Rollno1

相關問題