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;
        }
    }

今、私はどこから始めればよいかわかりません。助けてくれる人に感謝します。

4

1 に答える 1

0

onSaveInstanceState(Bundle savedInstanceState) をオーバーライドするだけです

次のように、変更するアプリケーションの状態値を Bundle パラメータに書き込みます。

@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(Bundle) または onRestoreInstanceState(Bundle) で取得できます (このメソッドによって入力されたバンドルは両方に渡されます)

于 2011-06-21T17:33:48.760 に答える