Я занимаюсь разработкой приложения для заметок, и мне нужно перезагрузить заметки в представлении, когда Редактор заметок закрыт (я использую Finish()
, чтобы закрыть Редактор) , но я не уверен, как ждать, пока действие не закроется и что-то не будет сделано.
Я запускаю действие редактора следующим образом:
public async void noteClicked(object sender, EventArgs e)
{
var obj = (RelativeLayout)sender;
var id = obj.Id;
var note = Util.db.Query<Note>(string.Format("SELECT * FROM Notes WHERE ID={0}", id));
var intent = new Intent(this, typeof(EditorAcitivity));
intent.PutExtra("Note", JsonConvert.SerializeObject(note));
intent.PutExtra("Mode", "Edit");
StartActivity(intent);
}
На EditorActivity.cs:
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
SetContentView(Resource.Layout.editor_activity);
Util.context = this;
mode = Intent.GetStringExtra("Mode");
txtTitle = FindViewById<EditText>(Resource.Id.editorTitle);
txtText = FindViewById<EditText>(Resource.Id.editorText);
if (mode == "Edit")
{
note = JsonConvert.DeserializeObject<Note>(Intent.GetStringExtra("Note"));
txtTitle.Text = note.title;
txtText.Text = note.text;
}
FindViewById<ImageButton>(Resource.Id.editorDelete).Click += editorDelete_Clicked;
FindViewById<ImageButton>(Resource.Id.editorSave).Click += editorSave_Clicked;
}
private void editorSave_Clicked(object sender, EventArgs e)
{
if (txtText.Text.Length == 0 || string.IsNullOrWhiteSpace(txtText.Text))
{
Util.makeShortText("Null text");
}
else
{
var note = new Note();
note.date = Util.now();
note.text = txtText.Text;
if (string.IsNullOrWhiteSpace(txtTitle.Text))
{
note.title = " ";
}
else {
note.title = txtTitle.Text;
}
Util.db.Insert(note);
this.Finish();
}
}
Я хочу сделать что-то вроде loadNotes()
, когда действие будет завершено (this.Finish()
)
Редактировать: Надеюсь не хочу возвращать некоторые данные, просто дождитесь активности.