我在一个片段中创建了一个函数,它从片段的UI中获取数据。我希望在我的主Activity中访问它,以便将数据存储在cloud firestore中
这是在片段中重写函数fun onViewCreated(视图:视图,已保存示例状态:Bundle?){ super.onViewCreated(视图,已保存示例状态)
fun getData(){
var dairyMealStock: Int = view?.findViewById<EditText>(R.id.et_dairy_meal_stock)?.text.toString().toInt()
var dairyMealDuration: Int = view?.findViewById<EditText>(R.id.et_dairy_meal_used)?.text.toString().toInt()
var maizeCharmStock: Int = view?.findViewById<EditText>(R.id.et_maize_charm_stock)?.text.toString().toInt()
var maizeCharmDuration: Int = view?.findViewById<EditText>(R.id.et_maize_charm_used)?.text.toString().toInt()
var wheatBrandStock: Int = view?.findViewById<EditText>(R.id.et_wheat_brand_stock)?.text.toString().toInt()
var wheatBrandDuration: Int = view?.findViewById<EditText>(R.id.et_wheat_brand_used)?.text.toString().toInt()
var maizeBrandStock: Int = view?.findViewById<EditText>(R.id.et_maize_brand_stock)?.text.toString().toInt()
var maizeBrandDuration: Int = view?.findViewById<EditText>(R.id.et_maize_brand_used)?.text.toString().toInt()
var cottonCakeStock: Int = view?.findViewById<EditText>(R.id.et_cotton_cake_stock)?.text.toString().toInt()
var cottonCakeDuration : Int = view?.findViewById<EditText>(R.id.et_cotton_cake_used)?.text.toString().toInt()
var pyrethrumStock: Int = view?.findViewById<EditText>(R.id.et_pyrethrum_stock)?.text.toString().toInt()
var pyrethrumDuration: Int = view?.findViewById<EditText>(R.id.et_pyrethrum_used)?.text.toString().toInt()
var dcpStock: Int = view?.findViewById<EditText>(R.id.et_D_C_P_stock)?.text.toString().toInt()
var dcpDuration: Int = view?.findViewById<EditText>(R.id.et_D_C_P_duration)?.text.toString().toInt()
var blockStock: Int = view?.findViewById<EditText>(R.id.et_block_stock)?.text.toString().toInt()
var blockDuration: Int = view?.findViewById<EditText>(R.id.et_Block_duration)?.text.toString().toInt()
var jotoStock: Int = view?.findViewById<EditText>(R.id.et_joto_stock)?.text.toString().toInt()
var jotoDuration: Int = view?.findViewById<EditText>(R.id.et_joto_duration)?.text.toString().toInt()
var yaMaziwaStock: Int =view?.findViewById<EditText>(R.id.et_ya_maziwa_stock)?.text.toString().toInt()
var yaMaziwaDuration: Int = view?.findViewById<EditText>(R.id.et_ya_maziwa_duration)?.text.toString().toInt()
var allPurposeStock: Int = view?.findViewById<EditText>(R.id.et_all_purpose_stock)?.text.toString().toInt()
var allPurposeDuration: Int = view?.findViewById<EditText>(R.id.et_all_purpose_duration)?.text.toString().toInt()
}
}
2条答案
按热度按时间btxsgosb1#
你必须使用一个接口来做到这一点。
1.首先定义接口
2 .在片段中重写onAttach,然后定义回调函数
例如
1.在您的Activity中实现这个回调函数并重写这些方法。
bwleehnv2#
您可以使用activityViewModel并将数据存储在那里,这样Activity和fragment都可以访问相同的数据。