【问题标题】:get data from fragments to the other class从片段中获取数据到另一个类
【发布时间】:2020-10-22 08:43:26
【问题描述】:

我是 xamarin android 的新手。我有一个片段,每次都会出现。在它里面我有一个我需要的变量 id,但我不知道如何得到它。当有人扫描他的卡时,我得到了 ID,但完整的操作在那个片段内。

这是来自 Activity 的代码:

if (savedInstanceState == null)
{
    FragmentTransaction transaction = FragmentManager.BeginTransaction();
    var fragment = new CardReaderFragment();
    transaction.Replace(Resource.Id.sample_content_fragment, fragment);
    transaction.Commit();

}

以及我有“card_account_field”的那个片段中的代码,我在其他班级中需要它。

if (v != null)
{
    mAccountField = (TextView)v.FindViewById(Resource.Id.card_account_field);
    mCardReader = new CardReader(new WeakReference<CardReader.AccountIdCard>(this));
    // Disable Android Beam and register our card reader callback
    EnableReaderMode();
}

我只需要获取mAccountField 并在我的MainActivity 中使用它,但该变量位于片段框内。我能以某种方式传递它的价值吗?

【问题讨论】:

    标签: android xamarin android-fragments xamarin.android


    【解决方案1】:

    你可以使用ISharedPreferences来实现

    在fragment中,获取ID后,可以使用ISharedPreferences来存储。

                ISharedPreferences prefs = PreferenceManager.GetDefaultSharedPreferences(Application.Context);
                ISharedPreferencesEditor editor = prefs.Edit();
                editor.PutString("ID", "12345");
                // editor.Commit();    // applies changes synchronously on older APIs
                editor.Apply();        // applies changes asynchronously on newer APIs
    

    然后你可以得到任何你想要的ID。

     ISharedPreferences prefs1 = PreferenceManager.GetDefaultSharedPreferences(Application.Context);
              string  myID = prefs1.GetString("ID", "1");
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-04-07
      • 1970-01-01
      • 2022-01-20
      • 2015-12-02
      • 1970-01-01
      相关资源
      最近更新 更多