2011-09-13 8 views
2

私はユーザーが情報を追加する必要があるアンドロイドアプリを作っています。ユーザーが空白のフィールドを残してボタンをクリックし、他のフィールドが入力されたのと同じアクティビティを開始する必要があります。ボタンのクリックで同じアクティビティを再開する

私はこのためにインテントを使用していますが、再びアクティビティを開始できますが、すべてのフィールドが空になります。 これをどうやってインテントで行うことができますか?あなたがする必要がどのような

おかげ

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

答えて

3

はあなたが意図して活動に表示するすべての情報を渡しています。あなたがあなたの意図を作成するとき、あなたは意図に "余分な"情報を入れます。それが一時停止されているときに、活動状態を保存したい場合は

は、あなたが保存する必要があります。

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

編集

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

その後アクティビティでは、情報を取得することができますonPause()メソッドで関心のある変数を削除してから、それらをonResume()メソッドでリカバリします。

+0

このコードから別のアクティビティが開始されます。代わりに別のアクティビティを開始する必要はありません。代わりに同じアクティビティを再開します。 – ekjyot

+0

同じ活動を再開するのはどういう意味ですか?アクティビティーがすでに実行中の場合。 – slayton

+0

私の実際の問題は、フィールドのいずれかが空のままになっている場合、そのフィールドが空であることを示す警告ボックスを表示する必要があります。ボタンをクリックすると、コントロールが同じアクティビティに戻ります。そのような。それ以外の場合は、すべてのフィールドが適切に入力されていれば、コントロールは別のアクティビティに移動するはずです...今、どうすればいいか教えてください。ありがとう – ekjyot

1
+0

私はstartActivityForResult()メソッドを使用しています。しかし、再びすべてのフィールドがボタンクリックで空になる – ekjyot

+0

あなたのコードを表示...... –

+0

インテントインテント=新しいインテント(Register.this、Register.class); \t \t \t \t \t \t \t startActivityForResult(intent、1); – ekjyot

関連する問題