Android StartactivityForresult и Finish (с видео)
-
27-09-2019 - |
Вопрос
У меня есть класс свидетельств: «Добавить элемент», а класс «Добавить элемент» и классом AdditeMactivity с TextBox и кнопкой «Сохранить». Пользователь должен нажать на «Добавить элемент», перейдите на экран AdditeMactivity, введите элемент, нажмите «Сохранить», а затем вернитесь к обновленному экрану основной акции.
(Кстати, я использую Monodroid, но я не думаю, что это необходимо для конкретной проблеме монодоиды).
Мой «Добавить элемент» Click Event (на главной активности):
private void addItemButton_Click(object sender, EventArgs e)
{
var intent = new Intent();
intent.SetClassName(this, "monoApp.AddItemClassName");
StartActivityForResult(intent, 0);
}
My «Save» Click Event (ON Add Pite Activity):
private void saveButton_Click(object sender, EventArgs e)
{
var itemname = FindViewById<EditText>(Resource.id.itemName);
_repo.SaveItem(new Item() {Name = itemname.Text.ToString()});
Toast.MakeText(this, "You saved: " + itemname.Text, ToastLength.Short).Show();
var intent = new Intent();
SetResult(Result.Ok, intent);
Finish();
}
А затем вернуться в основную деятельность:
protected override void OnActivityResult(int requestCode, Result resultCode, Intent data)
{
base.OnActivityResult(requestCode, resultCode, data);
RefreshTheList();
}
Это работает как очарование, в первый раз. Экран скользит на «добавить элемент», а затем вернуться назад к главному, когда это сделано. То второй раз, он скользит, но затем он стремится обратно к сам, если это имеет смысл. А потом, если я ударю спасению опять таки, он возвращается к работе в порядке.
Если бы видео поможет, я разместил клип того, что я вижу в Twitvid: http://www.twitvid.com/w7xzc.
По сути, я не хочу, чтобы «скользить к себе» когда-либо, так что я делаю не так?
Решение
Я не вижу ничего плохого в вашем коде здесь ... Я думаю здесь.
Ваша вторая активность может быть запущена несколько раз во второй попытке как-то из ваших оставшихся порций кода.
Распечатайте журнал внутри вашего AdditeMbutton_Click и проверьте. Если журнал напечатан дважды, то он вызывает метод 2 раза.