【发布时间】:2019-05-15 16:45:27
【问题描述】:
我是这个领域的新手,遇到这样的情况,我有两个页面:
MainActivity.axml
SecondActivity.axml
我在 MainActivity 中有一个名为 BtnOther 的按钮,在此按钮中我想导航到 SecondActivity。在 SecondActivity 中,我有按钮 btnBackToExisting1stPage,我想返回 MainActivity。通常它可以工作,但是:
单击 BtnOther 或 android 后退箭头后,应用程序将在模拟器上最小化,而不是停留在前面。为什么会这样以及如何避免?
我希望在按 BtnOther 或返回箭头从 SecondActivity 返回到 MainActivity 但打开与以前一样的确切 MainActivity 状态时。例如,如果我在 MainActivity 上有文本编辑字段并在进入 SecondActivity 之前放置一些文本,然后从 SecondActivity 返回时,我希望看到 MainActivity 完全相同的表单状态,而不是像我当前的代码那样创建新的。
我当前的代码:
public class MainActivity : AppCompatActivity
{
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
Plugin.CurrentActivity.CrossCurrentActivity.Current.Init(this, savedInstanceState);
Xamarin.Essentials.Platform.Init(this, savedInstanceState);
// Set our view from the "main" layout resource
SetContentView(Resource.Layout.activity_main);
var btnOther = FindViewById<Button>(Resource.Id.Other);
btnOther.Click += BtnOther_Click;
}
private void BtnOther_Click(object sender, EventArgs e)
{
Intent nextActivity = new Intent(this, typeof(SecondActivity));
StartActivity(nextActivity);
Finish();
}
}
public class SecondActivity : Activity
{
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
// Create your application here
SetContentView(Resource.Layout.Second);
var btnBackToExisting1stPage = FindViewById<Button>(Resource.Id.BackToExisting1stPage);
btnBackToExisting1stPage.Click += OnBackPressed;
}
private void OnBackPressed(object sender, EventArgs e)
{
OnBackPressed();
}
public override void OnBackPressed()
{
Toast.MakeText(this, "Back button Pressed", ToastLength.Short).Show();
base.OnBackPressed();
Finish();
}
}
【问题讨论】:
-
你试过
startActivityForResultdeveloper.android.com/training/basics/intents/result -
在开始下一个活动时不要调用完成。稍后用标志完成或清除它
-
你要我回答这个问题吗?
标签: android xamarin xamarin.forms xamarin.android