2011-06-21 43 views
0

我很難保存我的活動狀態,以便在活動被銷燬時它可以恢復用戶上次離開的位置。這是我的源代碼。我如何保存和恢復它。 如何使用此保存活動狀態

 

    public class DorothyTalk extends Activity{ 
     Handler handler = new Handler(); 
     int typeBar; 
     TextView text1; 
     EditText edit; 
     Button respond; 
     private String name; 
     private ProgressDialog progDialog; 
     @Override 
     public void onCreate(Bundle savedInstanceState){ 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.dorothydialog); 

      text1 = (TextView)findViewById(com.fttech.da.R.id.dialog); 
      edit = (EditText)findViewById(com.fttech.da.R.id.repsond); 
      respond = (Button)findViewById(com.fttech.da.R.id.button01); 

      Talk(); 

     } 

     protected Dialog onCreateDialog(int id) { 
      switch(id) { 
      case 0:      // Spinner 
       progDialog = new ProgressDialog(this); 
       progDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER); 
       progDialog.setMessage("Loading..."); 
       progDialog.setProgress(100); 
        return progDialog; 
      } 
      return progDialog; 
     } 
     public void Talk(){ 
      text1.setText("Welcome what is your name?"); 
      respond.setOnClickListener(new View.OnClickListener() { 
       @Override 
       public void onClick(View v) { 
        name = edit.getText().toString(); 
        new AsyncTask(){ 
         @Override 
         protected Void doInBackground(Void... arg0) { 
          try {     
          Thread.sleep(1000);    
          } catch (InterruptedException e) {       
           e.printStackTrace();    
          }    
          return null; 
         } 
         @Override   
         protected void onPostExecute(Void result) { 
          text1.setText("Nice to meet you "+name); 
          dismissDialog(typeBar); 
         } 
         @Override   
         protected void onPreExecute() { 
          typeBar = 0; 
          showDialog(typeBar); 
         } 

        }.execute((Void)null); 
       } 
      }); 
     } 


     public void onBackPressed(){ 
      int i = Log.d("CDA", "onBackPressed Called"); 
      Context localContext = getApplicationContext(); 
      Intent localIntent = new Intent(localContext, mainMenu.class); 
      startActivityForResult(localIntent, 0); 
      return; 
     } 
    } 
 

現在我不知道從哪裏開始。感謝誰能幫助。

回答

0

只是覆蓋onSaveInstanceState(Bundle savedInstanceState)

,並寫上你想要改變的捆綁參數這樣的應用程序的狀態值:

@Override 
    protected void onSaveInstanceState(Bundle outState) { 
     // Save away the original text, so we still have it if the activity 
     // needs to be killed while paused. 
     outState.putString(ORIGINAL_CONTENT, mOriginalContent); 
     outState.putInt("MyInt", 1); 

    } 

後,您可以在的onCreate(捆綁)或onRestoreInstanceState檢索(捆綁)(通過這種方法填充的捆綁將被傳遞到兩個)

+0

好吧,所以我只是保存我所有的文本..現在的問題是如何得到活動,以實現用戶在哪裏問題..當它第一次開始詢問你的名字...之後,它說歡迎(姓名)或某事...問題是我如何讓活動回到用戶在被銷燬後離開的地方。 – theITRanger22

+0

嗯....你可以保存包中的小部件的值。 outState.putString(「text1」,text1.getText())。而onCreate()只是獲取text1的值並重新設置。也許有另一種解決方案......但我想這解決了你的問題。 – Valdemar

+0

這聽起來像一個偉大的解決方案的人..但是,我將如何保存用戶上次進入..該程序的作品通過點擊偵聽器...我將如何保存點擊用戶是什麼?或者我將如何從銷燬中恢復並恢復用戶停止的FULL狀態,以及他們的onClickListener。 – theITRanger22