单击按钮完成后如何返回某些活动

时间:2014-12-12 11:05:55

标签: android

我在最后一个插入数据库的活动中有这个:

btnFinish = (Button) findViewById(R.id.btnFinish);

    btnFinish.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            Bundle extras = getIntent().getExtras();
            if (extras != null) {
                Name = getIntent().getExtras().getString("Name");
                Email = getIntent().getExtras().getString("Email");
                Phone = getIntent().getExtras().getString("Phone");
            }               
            new SummaryAsyncTask().execute((Void) null);                
            startActivity(getIntent());

        }
    });

目前,当我点击btnfinish时,重新加载相同的活动。我想要的是回到一些活动。不是以前但有些活动..这可能吗?

5 个答案:

答案 0 :(得分:1)

以下代码段就足够了

Intent toSomeActivity=new Intent(CurrentActivity.this,SomeActivity.class);
intent.putExtra("Name",Name);
intent.putExtra("Email",Email);
intent.putExtra("Phone",Phone);
startActivity(toSomeActivity);

答案 1 :(得分:1)

您可以通过简单地调用您要去的活动的启动来访问您所在的任何活动。尝试在main中为按钮创建一个方法,然后在当前方法中调用它。

//the method in the main activity
public void homeButton()
{
    HomeButton=(Button) findViewById(R.id.home_button);
    HomeButton.setOnClickListener(new View.OnClickListener()
    {
        @Override
        public void onClick(View v)
        {
            initHomeActivity();
        }
    });
}

...

//the activity initiation to be called by the onClick
public void initHomeActivity()
{
    homeActivity = new HomeActivity(this);
    homeActivity.init();
}

...

MainActivity mainActivity
//calling the method from the current activity
public void init() {
    mainActivity.setContentView(R.layout.activity_sign_out);
    mainActivity.homeButton();
}

答案 2 :(得分:1)

在您的清单中,将其添加到您的活动中:

android:launchMode="singleTask"

使用此参数,每次活动重新启动时,它都将返回到同一个实例。

答案 3 :(得分:1)

  

目前,当我点击btnfinish重新加载相同的活动时。我想要的是回到一些活动。不是以前但有些活动..这可能吗?

你的问题就在这一行:

startActivity(getIntent());  //getIntent returns intent that started this activity

所以它只是重新加载该活动。

您需要这样做:

Intent intent = new Intent(MyActivity.this, SomeActivity.class);
startActivity(intent);

这将指定您需要打开SomeActivity

希望它有所帮助。

答案 4 :(得分:1)

您需要定义要重定向的 Activity类。  你写过

  

startActivity(getIntent());

表示相同的Activity,肯定会重新加载相同的活动。

将其更改为:

startActivity(new Intent(ThisActivityName.this, NetxActivtiy.class));

希望它有助于ツ