android - 在 Fragment 中单击按钮时通知 Activity
问题描述
我有一个活动:
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
var fragment = WheelFragment.newInstance("a", "b")
supportFragmentManager.beginTransaction().replace(R.id.mainFrame, fragment).commit()
}
现在在片段中,我希望通知活动关于按钮单击并发送数据。
class WheelFragment : Fragment() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
}
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
val view: View = inflater.inflate(R.layout.fragment_wheel, container, false)
val buttonNextWheel1 = view.findViewById<View>(R.id.buttonNextWheel)
buttonNextWheel1.setOnClickListener {
Log.d("DTAG", "Send some data here")
}
return view
}
}
解决方案
您可以从 Fragment 触发要在 Activity 中执行的功能,如下所示:
(activity as MainActivity).doSomeThing()
活动
class MainActivity : AppCompatActivity() {
val TAG = "yourTag"
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
}
public fun doSomeThing() {
Log.i(TAG, "doSomeThing: ")
}
}
分段
class WheelFragment : Fragment() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
}
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
val view: View = inflater.inflate(R.layout.fragment_wheel, container, false)
val buttonNextWheel1 = view.findViewById<View>(R.id.buttonNextWheel)
buttonNextWheel1.setOnClickListener {
Log.d("DTAG", "Send some data here")
(activity as MainActivity).doSomeThing()
}
return view
}
}
推荐阅读
- python - 浏览特定页数的文件
- python-3.x - 如何将 pytesseract 部署到 Heroku
- delphi - 我可以在 TJvMail 中设置发件人的地址吗
- python - 在遍历行时获取 KeyError:61
- python - Python中的图形集成
- java - 向左或向右滑动以更改 Fragment 内的 RecyclerView
- reactjs - react-router-dom - 链接和history.push之间的区别?
- javascript - 如何知道chartjs中点击区域的索引?
- c - ***检测到堆栈粉碎***:
终止中止(核心转储) - c# - LINQ 表达式中的步入和步出