如何从另一个Activity调用MainActivity

时间:2013-11-25 03:27:21

标签: java android android-intent android-activity

我有我的MainActivity,当按下按钮时,我为SecondActivity创建一个Intent, 我想回到活动。但是当我创建intent并通过构造函数传递(this,MainActivity.class)时,我得到一个错误:意图构造函数是未定义的。有人能帮助我吗?

public void goBackToMainActivity(View view){

    //Button for retrieving the user's current location:
    final Button backButton = (Button) findViewById(R.id.back_button);

    //Listens for button presses and releases:
    backButton.setOnTouchListener(new OnTouchListener() {

        @Override
        public boolean onTouch(View v, MotionEvent event) {
            //When the button is pressed:
            if(event.getAction() == MotionEvent.ACTION_DOWN) {
                //Change image for touch indication:
                backButton.setBackgroundResource(R.drawable.back_button);                           
            //When the button is released:
            } else if (event.getAction() == MotionEvent.ACTION_UP) {
                //Change image back to default:
                backButton.setBackgroundResource(R.drawable.back_button_selected);  
                goBackToMainActivity();
            } 
                return false;
            }

        });
}

public void goBackToMainActivity() {
    finish();
    Intent startIntent = new Intent(this, MainActivity.class);      
    startActivity(startIntent);
}

4 个答案:

答案 0 :(得分:1)

我猜你是在OnClickListener内创建意图,因此你需要使用下面的代码:

Intent intent = new Intent(SecondActivity.this, MainActivity.class);

原因是如果你没有指定SecondActivity.this,你实际上是将OnClickListener传递给了意图构造函数。

答案 1 :(得分:0)

更改你的goback方法:

public void goBackToMainActivity() {

    Intent startIntent = new Intent(CurrentActivityName.this, MainActivity.class);      
    startActivity(startIntent);
    finish();
}

答案 2 :(得分:0)

首先通过编写代码清除所有现有活动: startActivity(intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP));

然后将意图调用到MainActivity

Intent i=new Intent(CurrentActivity.this, MainActivity.class);
startActivity(i);

答案 3 :(得分:-1)

尝试在第二个活动中点击按钮时调用finish()以返回主活动。

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