2013-06-20 17 views
0

在我的應用程序中,我有兩個活動。第一個活動,我有兩個紡紗,當我設置微調值,併爲下一個活動。當我回到我的第一個活動的數據將被刷新。我想在這裏是我想看到由privious設置的價值。如何我能做到這一點。請任何人都可以幫助我。如何在android中保存我Activity的數據?

這裏稱爲像波紋管我活動的生命週期:

1)當我從活動1移到活性2

的onPause()

的onStop()

2)當我回到回到我的第一個活動

onStart()

的onResume()

我已經保存在onSaveInstance狀態的值,但onRestoreInstance狀態不called.here我的代碼是:@覆蓋

protected void onSaveInstanceState(Bundle outState) { 
     // TODO Auto-generated method stub 
     super.onSaveInstanceState(outState); 
     strAutoCompleteValue = autoPatientList.getSelectedItem().toString(); 
     strSpinnerAppointment = selectAppointment.getSelectedItem().toString(); 
     outState.putString("PatientName", strAutoCompleteValue); 
     outState.putString("AppointmentDate", strSpinnerAppointment); 

     Toast.makeText(this, "onSaved", 3000).show(); 
    } 

@Override 
    protected void onRestoreInstanceState(Bundle savedInstanceState) { 
     // TODO Auto-generated method stub 
     super.onRestoreInstanceState(savedInstanceState); 
     String pName = savedInstanceState.getString("PatientName"); 
     String appDate = savedInstanceState.getString("AppointmentDate"); 

     Toast.makeText(this, "onRestore", 3000).show(); 
    } 

提前感謝。

+0

可能出現重複問題,查看此答案 (http://stackoverflow.com/questions/6705277/save-value-of-spinner-selected-item-using-shared-preference) –

+0

您應該使用在'onSaveInstanceState'中,例如'outState.putInt(String,spinner.getSelectedItemPosition())'。下一步使用Logger記錄消息,而不是Toast,例如:Log.i(「你的標籤名稱」,「你的消息」);'。而在'onRestoreInstanceState'中,你並沒有將存儲的值賦給微調,所以你可以使用'spinner.setSelection(savedInstanceState.getInt(String))'。 – mleczey

回答

1

使用onSaveInstanceState 將您的微調選項保存爲一個包。然後在onCreate(Bundle)中重新創建活動時,從包中獲取數據以重置spinners。

0

您應該執行onSaveInstanceState以將您的狀態保存到Bundle中並執行onRestoreInstanceStateonCreate以恢復您的狀態。

+0

和內部onCraete,如果你有savedInstanceState!= null,那麼你正在恢復活動,否則它是一個新的活動。 –

+0

這也是我試過,但我總是savedInstanceState = null – user2466123

0

嘗試這樣

Spinner Spinner_ = (Spinner) findViewById(R.id.Spinner_); 

public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3) 
{ 
      // TODO Auto-generated method stub 
Spinner recent_Spinner = (Spinner) arg0; 
Integer selected_Spinner_ = Spinner_.getSelectedItemPosition(); 
nw_global.set_Spinner_(selected_Spinner_.toString()); 
} 
public void onNothingSelected(AdapterView<?> arg0) 
    { 
    // TODO Auto-generated method stub 
} 
if (nw_global.get_Spinner_() != null && !nw_global.get_Spinner_().isEmpty()) 
    { 
     Spinner_.setSelection(Integer.parseInt(nw_global.get_Spinner_().replace("'", ""))); 
    } 
    else 
    { 
     Spinner_.setSelection(0); 
    } 

而且這樣做是nw_global

public class nw_global extends Application { 

private static String scale_spinner; 
public static void set_Spinner_(String i) { 
    // TODO Auto-generated method stub 
    nw_global.scale_spinner = i; 
} 
public static String get_Spinner_(){ 

    return scale_spinner; 
    } 
} 

只是示例代碼在這裏..希望它會工作

+0

這裏是什麼nw_global? – user2466123

+0

現在看編輯的代碼... – Amsheer

+0

我明白了。謝謝 – user2466123

相關問題