按钮单击时恢复相同的活动

时间:2011-09-13 11:59:19

标签: android android-activity android-intent

我正在创建一个用户需要添加信息的Android应用程序。我希望如果用户留下任何空白字段并单击该按钮,则应启动填充其他字段的相同活动。

我正在使用意图并且能够再次启动活动但是所有字段都被清空了。 我怎么能这样做。

由于

  public void onCreate(Bundle savedInstanceState)
    {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.register);


    Register=(ImageButton)findViewById(R.id.register);
    Reset=(ImageButton)findViewById(R.id.reset);

    firstName=(EditText)findViewById(R.id.firstName);
    surName=(EditText)findViewById(R.id.surname);
    email=(EditText)findViewById(R.id.eMAil);
    password=(EditText)findViewById(R.id.passWord);
    retypePassword=(EditText)findViewById(R.id.retypePassword);
    town=(EditText)findViewById(R.id.town);
    cellno=(EditText)findViewById(R.id.cellno);
    dateOfBirth=(Button)findViewById(R.id.datepickerbutton);         
 Register.setOnClickListener(clickRegisterListener);

  private OnClickListener clickRegisterListener = new OnClickListener() {
    public void onClick(View v)
    {
         try{
                FirstName=firstName.getText().toString();
                SurName=surName.getText().toString();
                sex.setOnItemSelectedListener(new            MyOnItemSelectedListener());
                Email=email.getText().toString();
                Password=password.getText().toString();
                RetypePassword=retypePassword.getText().toString();
                Town=town.getText().toString();
                Cellno=cellno.getText().toString();

                if(FirstName.equals(""))
                {
                    AlertDialog.Builder alertbox = new AlertDialog.Builder(Register.this);
                    alertbox.setMessage("First Name field can not be left empty!");
                    alertbox.setNeutralButton("Ok", new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface arg0, int arg1)
                        {

                        Intent intent = new Intent(Register.this, Register.class);
                       //   onSaveInstanceState(bundle);
                        startActivity(intent);
                        }
                      });
                    alertbox.show();
                }

2 个答案:

答案 0 :(得分:3)

您需要做的是将您想要显示的所有信息传递给具有意图的活动。当您创建意图时,您会在意图中“添加额外”信息。

Intent i = new Intent(this, OtherActivity.class);
i.putExtra("variableName", "variable value");

然后在活动中,您可以检索信息:

Bundle extras = this.getIntent().getExtras(); 
String var = extras.getString("variableName");

修改

如果要在暂停时保存活动状态,则需要在onPause()方法中保存感兴趣的变量,然后在onResume()方法中恢复它们

答案 1 :(得分:1)

您应该使用startActivityForResult()