如何在它被破坏的活动中保存状态

时间:2011-06-29 14:52:55

标签: android

    public class Talk extends Activity {
private ProgressDialog progDialog;
int typeBar;
TextView text1;
EditText edit;
Button respond;
private String name;
private String textAtView;
private String savedName;

public void onCreate (Bundle savedInstanceState){

    super.onCreate(savedInstanceState);
    setContentView(R.layout.dorothydialog);


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

    respond.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            text1.setText("Welcome! Enter your name!");

            respond.setOnClickListener(new View.OnClickListener() {

                @Override
                public void onClick(View v) {
                    name = edit.getText().toString();

                    text1.setText("Cool! your name is "+name);

                }
            });

        }
    });

}

}

好的,所以我想知道如何保存这项活动的状态。这只是我代码中的一个小片段,向您展示一个例子。所以我想保存状态,所以当活动被破坏时,用户将返回他们离开的地方 第二件事,我想在每个按钮点击之间显示一个快速的5秒Progress对话框微调器。

1 个答案:

答案 0 :(得分:1)

第二件事

这应该有效:

public class TestActivity extends Activity implements Runnable, OnClickListener {
private TextView tv;
private ProgressDialog pd;
private Button btn;

@Override
public void onCreate(Bundle icicle) {
    super.onCreate(icicle);
    setContentView(R.layout.main);

    tv = (TextView) this.findViewById(R.id.tv);     
    btn = (Button)findViewById(R.id.btn);

    tv.setText("initial text");

    btn.setOnClickListener(this);
}

public void onClick(View v) {
    pd = ProgressDialog.show(TestActivity.this, "Please wait...", "Details here", true, false);

    Thread thread = new Thread(TestActivity.this);
    thread.start();
}
public void run() {
    try {
        Thread.sleep(5000);
    } catch (InterruptedException e) {
        e.printStackTrace();
    }

    handler.sendEmptyMessage(0);
}

private Handler handler = new Handler() {
    @Override
    public void handleMessage(Message msg) {
        pd.dismiss();
        tv.setText("text after 5 sec passed");
    }
};
}