0

2つのアクティビティと2つのファイル.xmlがあり、nameActivityにはbuttonCancelとbuttonNewUserがあり、SignUpActivityにはbuttonBackがあり、buttonNewUserをクリックするとSignUpActivityが実行され、buttonBackをクリックするとnameActivityに戻りますが、buttonCancelをクリックするとSignUpActivityに戻ると、まるで輪になって歩くようなものです。

このようなnameActivityのコード:

Button signUp, cancel;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_name);

    signUp = (Button)findViewById(R.id.buttonNewUser);
    signUp.setOnClickListener(new OnClickListener(){
        public void onClick(View v) {
            Intent intent = new Intent(v.getContext(),SignUpActivity.class);
            startActivityForResult(intent, 0);
        }

    });

    cancel = (Button)findViewById(R.id.buttonCancel);
    cancel.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            finish();
            System.exit(0);
        }
    });
}

SignUpActivityのコード:

ボタンを戻す;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_sign_up);

    back = (Button)findViewById(R.id.btnBackSignUp);
    back.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            Intent intent = new Intent(v.getContext(),NameActivity.class);
            startActivityForResult(intent, 0);
        }
    });
}

何があったの?

4

1 に答える 1

0

SignUpActivityの新しいインスタンスを作成しているだけなので、元のアクティビティを再度開始する代わりに、アクティビティを終了するように変更しますNameActivity

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_sign_up);

    back = (Button)findViewById(R.id.btnBackSignUp);
    back.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            finish();
        }
    });
}

また、使用しないでくださいSystem.exit()。Java で使用されますが、Android 開発ではこれを行う必要はありません。

于 2013-02-18T17:48:45.867 に答える