如何在Android中没有活动和片段的功能中使用布局组件?

MMG

我有一个布局,我想在一个函数中使用它的组件。我怎样才能做到这一点?

这是XML:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical">
<com.google.android.material.textview.MaterialTextView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:gravity="center"
    android:id="@+id/title"
    android:layout_gravity="center"
    android:textColor="#0055FF"
    android:textSize="30dp"/>
</LinearLayout>

这是函数:

fun Context.Dialog(){
    title.setOnItemClickListener{
        Toast.makeText(this,"OK",Toast.LENGTH_LONG).show()
    }
}

但是,在Dialog函数中无法识别标题我不想在活动或片段中使用Dialog函数。

谢尔盖

我不会将初始化OnCLickListener移出活动或片段,因为在那里(活动或片段中)您可以访问布局中定义的所有视图。但是,如果您要根据活动或片段创建单独的函数,则需要将视图或活动或片段作为参数传递:

// passing views
fun showDialog(title: View) {
    title.setOnClickListener { Toast.makeText(title.context, "OK", Toast.LENGTH_LONG).show() }
}

// passing activity
fun showDialog(activity: Activity) {
    val title: View = activity.findViewById(R.id.title);
    title.setOnClickListener { Toast.makeText(activity, "OK", Toast.LENGTH_LONG).show() }
}

// passing fragment
fun showDialog(fragment: Fragment) {
    val title: View? = fragment.view?.findViewById(R.id.title);
    title?.setOnClickListener { Toast.makeText(fragment.context, "OK", Toast.LENGTH_LONG).show() }
}

您还可以在上创建扩展功能View

fun View.showDialogWhenClick() {
    setOnClickListener { Toast.makeText(context, "OK", Toast.LENGTH_LONG).show() }
}

像这样在Activity或Fragment中使用它:

title.showDialogWhenClick()

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在活动之间共享通用布局而没有片段

来自分类Dev

如何在同一功能中打开片段和活动(使用抽屉布局)?

来自分类Dev

如何在没有 onClick 的主要活动中使用我的片段中定义的小部件

来自分类Dev

如何在Aurelia中使用布局?

来自分类Dev

如何在Android中禁用布局的所有触摸

来自分类Dev

如何在带有片段的活动中显示RecyclerView和CardView布局?

来自分类Dev

如何在片段中的活动中使用交换片段

来自分类Dev

如何在片段中的活动中使用交换片段

来自分类Dev

如何在片段中的活动中使用交换片段

来自分类Dev

如何在TabActivity中使用相同的布局文件在不同的片段中使用具有不同功能的相同按钮

来自分类Dev

在levelplot中使用布局功能

来自分类Dev

如何在 Fragment 类中使用布局元素

来自分类Dev

如何在 JTabbedPane 中使用布局管理器?

来自分类Dev

如何在片段中使用与活动中不同的菜单?

来自分类Dev

如何在android中重用布局,但同时使用多个ID?

来自分类Dev

标签活动折旧后如何在Android中使用标签?使用片段,我有一个问题

来自分类Dev

如何在 Android 中包含布局片段

来自分类Dev

如何在父级活动中访问片段布局?

来自分类Dev

无法在android main活动中使用不同布局的组件

来自分类Dev

如何在非活动类和片段中使用隐式意图

来自分类Dev

Android在片段中使用AlertDialog和自定义布局

来自分类Dev

如何在功能组件中使用PanResponder?

来自分类Dev

如何在没有片段的活动中创建弹出式叠加视图?

来自分类Dev

Kivy:如何在使用 ScreenManager 时在单独的屏幕中使用布局?

来自分类Dev

如何在Android中使用Picasso库将背景图像设置为活动布局

来自分类Dev

Android Studio中没有xml布局的新活动

来自分类Dev

如何在android布局中使用视图?

来自分类Dev

如何在ZF2中禁用布局和视图渲染器?

来自分类Dev

如何在Android中的活动和布局xml之间交换数据

Related 相关文章

  1. 1

    如何在活动之间共享通用布局而没有片段

  2. 2

    如何在同一功能中打开片段和活动(使用抽屉布局)?

  3. 3

    如何在没有 onClick 的主要活动中使用我的片段中定义的小部件

  4. 4

    如何在Aurelia中使用布局?

  5. 5

    如何在Android中禁用布局的所有触摸

  6. 6

    如何在带有片段的活动中显示RecyclerView和CardView布局?

  7. 7

    如何在片段中的活动中使用交换片段

  8. 8

    如何在片段中的活动中使用交换片段

  9. 9

    如何在片段中的活动中使用交换片段

  10. 10

    如何在TabActivity中使用相同的布局文件在不同的片段中使用具有不同功能的相同按钮

  11. 11

    在levelplot中使用布局功能

  12. 12

    如何在 Fragment 类中使用布局元素

  13. 13

    如何在 JTabbedPane 中使用布局管理器?

  14. 14

    如何在片段中使用与活动中不同的菜单?

  15. 15

    如何在android中重用布局,但同时使用多个ID?

  16. 16

    标签活动折旧后如何在Android中使用标签?使用片段,我有一个问题

  17. 17

    如何在 Android 中包含布局片段

  18. 18

    如何在父级活动中访问片段布局?

  19. 19

    无法在android main活动中使用不同布局的组件

  20. 20

    如何在非活动类和片段中使用隐式意图

  21. 21

    Android在片段中使用AlertDialog和自定义布局

  22. 22

    如何在功能组件中使用PanResponder?

  23. 23

    如何在没有片段的活动中创建弹出式叠加视图?

  24. 24

    Kivy:如何在使用 ScreenManager 时在单独的屏幕中使用布局?

  25. 25

    如何在Android中使用Picasso库将背景图像设置为活动布局

  26. 26

    Android Studio中没有xml布局的新活动

  27. 27

    如何在android布局中使用视图?

  28. 28

    如何在ZF2中禁用布局和视图渲染器?

  29. 29

    如何在Android中的活动和布局xml之间交换数据

热门标签

归档