我的活动中有一个带有自定义适配器类的 gridView,我无法弄清楚如何将视图模型绑定到我的活动的 gridView。 这是我的 gridview 适配器:

class ImageAdapter constructor(val mContext: Context, private val resource_layout: Int, private val images: Array<Int>) :
    ArrayAdapter<ImageAdapter.ViewHolder>(mContext, resource_layout) {

    override fun getView(position: Int, convertView: View?, parent: ViewGroup): View {
        var convertView = convertView
        val holder : ViewHolder

        if(convertView == null) {
            val layoutInflater = LayoutInflater.from(mContext)
            convertView = layoutInflater.inflate(resource_layout, null)
            holder = ViewHolder()
            holder.imageItem = convertView.added_picture
            convertView.tag = holder
        } else {
            holder = convertView.tag as ViewHolder
        }

        Glide.with(mContext)
            .load("https://picsum.photos/200/300")
            .apply(RequestOptions.centerCropTransform())
            .placeholder(R.drawable.ic_add_icon)
            .into(holder.imageItem)

        return convertView!!
    }

    override fun getCount(): Int {
        return images!!.size
    }

    inner class ViewHolder {
        lateinit var imageItem : ImageView
    }
}

#1楼 票数:1

<layout></layout>放入您的行文件中,您可以设置ViewModel名称的变量名称。 现在您可以在适配器中的getViewHolder中设置膨胀视图,如下所示。

mTaskCustomLayoutBinding =
            DataBindingUtil.inflate(inflater, R.layout.task_custom_layout, parent, false)
        return MyViewHolder(this!!.mTaskCustomLayoutBinding!!)

在您的 viewholder 类中设置绑定

inner class MyViewHolder(val mBinding: TaskCustomLayoutBinding) :
        RecyclerView.ViewHolder(mBinding.getRoot())

因此,您将获得绑定对象并将数据设置为您的视图。

希望它会帮助你:)

#2楼 票数:0

GridView grid = (GridView) itemView.findViewById(R.id.mGridView);

  ask by SuvodipMondal translate from so

未解决问题?本站智能推荐:

1回复

如何在MVVM Android中使用数据绑定处理ViewModel中的onClick或onTouch之类的事件

我浏览了许多与带有数据绑定的MVVM模型有关的博客。 由于使用ViewModel进行数据绑定使编写junit测试用例变得容易。 我想知道,我该如何在ViewModel中通过数据绑定实现诸如OnTouchListener , OnClickListener , OnFocusChangeL
1回复

在Android中,如果我使用绑定,如何应用ClickableSpan?

我知道,如果未应用绑定,则可以使用Textview.setText(ClickableSpan)来应用spannig效果以使部分文本可单击。 但是,我的应用程序使用了绑定,并且textview的文本已绑定到xml中的android:text="@{model.certainString}"之类
1回复

我如何决定我的应用程序应该有多少个 ViewModel? Android,MVVM [关闭]

关闭。 这个问题是基于意见的。 它目前不接受答案。 想改善
2回复

无法创建viewmodel的实例

您好我是Android新手MVVM并使用livingata。 我正在尝试创建一个viewmodel的实例。 我觉得问题是我没有将我的存储库传递给我的viewmodel构造函数。 我一直无法创建viewmodel的实例。 我不确定如何做到这一点是我的viewmodel及其创建。
2回复

ViewModel/Repository 显示空白

我正在按照Github 浏览器应用程序教程构建我的项目,而不使用数据绑定。 显示屏只是空白,仅显示导航视图。 我无法弄清楚我哪里出错了。 我试图调试,它的所有显示结果都是空的。 没有错误。 视图模型.java: 存储库.java: DAO.java: APIService.java
4回复

在 ViewModel 之间共享数据

我的项目中有一个复杂的屏幕,我打破了不止一个片段。 我正在尝试为这些类遵循 MVVM 架构,因此哪个片段有自己的ViewModel和 Contract 类。 问题是所有 ViewModel 都需要相同的对象实例(我们称之为Book )来执行 Room 事务。 它是否有在 ViewModel 之间
2回复

如何将逻辑移动到 ViewModel?

我如何从我的 ViewModel 中的片段移动逻辑?
1回复

通过 ViewModel 更改视图

我是 MVVM 的新手。 我试图找出从 ViewModel 更改视图的最简单方法。 在片段部分,我导航到下一个片段 但我不能从 ViewModel 调用它。 AFAIK 它甚至是不可能的,它破坏了 ViewModel 的概念。 当 ViewModel 中的此条件为 True 时,我想调用 f