我是xamarin android的新手。我想将数据从片段发送到MainActivity。 我搜索谷歌很多,几乎所有人都是用Java。
答案 0 :(得分:1)
你几乎没有选择:
访问父活动 在您的活动类中创建一个名为SetData(data)的函数。 您的fragmnet具有“Activity”属性,因此强制转换为您的活动类型,然后使用您的数据调用setData函数。
((ParentActivity)this.Activity).SetData(数据);
使用 SharedPreferences
设置(片段中):
ISharedPreferences prefs = PreferenceManager.GetDefaultSharedPreferences(context);
ISharedPreferencesEditor editor = prefs.Edit();
editor.PutString("my_data", "some_data");
editor.Apply();
获取(活动中):
ISharedPreferences prefs = PreferenceManager.GetDefaultSharedPreferences (context);
String myData = prefs.GetString ("my_data", "");
答案 1 :(得分:0)
您可以使用代理人执行此操作:
在Fragment类中定义委托
namespace Awesome.Android {
public class AwesomeFragment : Fragment {
public delegate void OnAwesomePress (int number);
public event OnAwesomePress sendOnAwesomePressEvent;
}
}
您可以在创建Framgent
时指定它AwesomeFragment fragment = new AwesomeFragment ();
fragment.OnAwesomePress += OnAwesomePress;
之后,您在活动中实施OnAwesomePress
private void OnAwesomePress (int number) {
}
现在,当你在片段中调用sendOnAwesomePressEvent
时,该事件将被传递给Activity。
sendOnAwesomePressEvent (10);