如何在Android Studio中的数据绑定中将值传递给android.view.View.OnClickListener变量?

HelloCW

以下代码来自向日葵项目

clickListener一个名为的变量,它是的变量android.view.View.OnClickListener

我不知道如何将一个值传递给变量clickListenerandroid.view.View.OnClickListener数据在Android Studio中结合,你能告诉我吗?

还有,我无法理解binding.setClickListener{...}PlantAdapter.kt中的代码,您能告诉我吗?

list_item_plant.xml

<layout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools">

    <data>
        <variable
            name="clickListener"
            type="android.view.View.OnClickListener"/>
        ...
    </data>

    <com.google.samples.apps.sunflower.views.MaskedCardView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"      
        android:onClick="@{clickListener}"
       
    ...
}

PlantAdapter.kt

class PlantAdapter : ListAdapter<Plant, RecyclerView.ViewHolder>(PlantDiffCallback()) {    
    ...
    class PlantViewHolder(
        private val binding: ListItemPlantBinding
    ) : RecyclerView.ViewHolder(binding.root) {
        init {
            binding.setClickListener {
                binding.plant?.let { plant ->
                    navigateToPlant(plant, it)
                }
            }
        }

     ...
}

新增内容

通常情况下,我定义数据结合可变nameplain_activity_solution_2.xml,我应该为它分配一个值,如binding.name = "Ada"PlainOldActivitySolution2.kt

所以,当我定义一个数据绑定变量clickListenerlist_item_plant.xml,我应该指定它的值,如binding.clickListener=...PlantAdapter.kt,但我找不到binding.clickListener=...PlantAdapter.kt,而不是我只是觉得binding.setClickListener {...},为什么呢?

plain_activity_solution_2.xml

<layout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools">

    <data>    
        <variable
            name="name"
            type="String"/>    
    </data>

    <androidx.constraintlayout.widget.ConstraintLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <TextView
            android:id="@+id/plain_name"
            android:layout_width="0dp"
            android:layout_height="wrap_content"                
            android:text="@{name}"
     ...
}

PlainOldActivitySolution2.kt

class PlainOldActivitySolution2 : AppCompatActivity() {

    // Obtain ViewModel from ViewModelProviders
    private val viewModel by lazy { ViewModelProviders.of(this).get(SimpleViewModel::class.java) }

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)

        val binding: PlainActivitySolution2Binding =
            DataBindingUtil.setContentView(this, R.layout.plain_activity_solution_2)

        binding.name = "Ada"
        binding.lastName = "Lovelace"
       
    }

    ...
}
这样的Mantelmakher

我不明白您要传递什么变量以及原因。

但是要传递任何变量,您可以使用如下所示的lambda表达式:

 android:onClick="@{() -> clickListener(someVariable, someOtherVariable)}"

如果需要视图,可以这样传递它:

 android:onClick="@{(view) -> clickListener(view)}"

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

匿名android.view.View.onclicklistener错误

来自分类Dev

Android-setOnClickListener与OnClickListener与View.OnClickListener

来自分类Dev

如何将变量/参数传递给android view方法

来自分类Dev

错误:空对象引用上的android.view.View $ OnClickListener

来自分类Dev

不能投射到 android.view.View$OnClickListener

来自分类Dev

(android.view.View$OnClickListener)' 对空对象引用 Kotlin

来自分类Dev

如何在View中全局设置变量?

来自分类Dev

如何在MVC中将Join数据传递给View

来自分类Dev

在android的View中调用View

来自分类Dev

视图类型中的方法setOnClickListener(View.OnClickListener)不适用于自变量(新DialogInterface.OnClickListener(){})

来自分类Dev

视图类型中的方法setOnClickListener(View.OnClickListener)不适用于自变量(新DialogInterface.OnClickListener(){})

来自分类Dev

在Android中实现View.OnClickListener的最佳方法

来自分类Dev

如何在View中绑定数据

来自分类Dev

Firebase 身份验证 android.view.View$OnClickListener 错误消息

来自分类Dev

如何知道哪个View在布局OnClickListener中单击了?

来自分类Dev

如何在Android Studio上使用View参数调用方法

来自分类Dev

如何在Android Studio中使用View参数调用方法

来自分类Dev

通过View.OnClickListener()传递MainActivity对象

来自分类Dev

如何在Android的Spinner View中添加左绘制

来自分类Dev

如何在LinearLayout类中为Android View充气?

来自分类Dev

如何在Android版式中创建TAB VIEW

来自分类Dev

如何在Android中禁用YouTube Player View的控件?

来自分类Dev

如何在LinearLayout类中为Android View充气?

来自分类Dev

如何在ListView中单击“ View”而不是“ Complete Row” :: Android

来自分类Dev

如何在Android版式中创建TAB VIEW

来自分类Dev

如何在调用onDraw()之前将变量传递给自定义View?

来自分类Dev

在View.OnCLickListener中侦听onActivityResault

来自分类Dev

Android Espresso 如何在 Recycler View 中单击 Recycler View 中的项目?

来自分类Dev

如何在MVC 5中将字符串作为模型传递给View?

Related 相关文章

  1. 1

    匿名android.view.View.onclicklistener错误

  2. 2

    Android-setOnClickListener与OnClickListener与View.OnClickListener

  3. 3

    如何将变量/参数传递给android view方法

  4. 4

    错误:空对象引用上的android.view.View $ OnClickListener

  5. 5

    不能投射到 android.view.View$OnClickListener

  6. 6

    (android.view.View$OnClickListener)' 对空对象引用 Kotlin

  7. 7

    如何在View中全局设置变量?

  8. 8

    如何在MVC中将Join数据传递给View

  9. 9

    在android的View中调用View

  10. 10

    视图类型中的方法setOnClickListener(View.OnClickListener)不适用于自变量(新DialogInterface.OnClickListener(){})

  11. 11

    视图类型中的方法setOnClickListener(View.OnClickListener)不适用于自变量(新DialogInterface.OnClickListener(){})

  12. 12

    在Android中实现View.OnClickListener的最佳方法

  13. 13

    如何在View中绑定数据

  14. 14

    Firebase 身份验证 android.view.View$OnClickListener 错误消息

  15. 15

    如何知道哪个View在布局OnClickListener中单击了?

  16. 16

    如何在Android Studio上使用View参数调用方法

  17. 17

    如何在Android Studio中使用View参数调用方法

  18. 18

    通过View.OnClickListener()传递MainActivity对象

  19. 19

    如何在Android的Spinner View中添加左绘制

  20. 20

    如何在LinearLayout类中为Android View充气?

  21. 21

    如何在Android版式中创建TAB VIEW

  22. 22

    如何在Android中禁用YouTube Player View的控件?

  23. 23

    如何在LinearLayout类中为Android View充气?

  24. 24

    如何在ListView中单击“ View”而不是“ Complete Row” :: Android

  25. 25

    如何在Android版式中创建TAB VIEW

  26. 26

    如何在调用onDraw()之前将变量传递给自定义View?

  27. 27

    在View.OnCLickListener中侦听onActivityResault

  28. 28

    Android Espresso 如何在 Recycler View 中单击 Recycler View 中的项目?

  29. 29

    如何在MVC 5中将字符串作为模型传递给View?

热门标签

归档