Xamarin.Android Adapter GetString 不起作用



我在RecyclerView中使用Resources.System.GetString(Resource.String.no_of_bags)。此类不包含上下文/活动的引用。我遇到运行时异常。

就像@Digitalsa1nt说的,你需要将Context传递给你的适配器。

这是关于RecyclerView用法的官方演示,但在创建PhotoAlbumAdapter实例时并没有提到Context

你可以这样做:

1( 在PhotoAlbumAdapter类中添加Context

public class PhotoAlbumAdapter : RecyclerView.Adapter
{
    Context mContext;
    PhotoAlbum mPhotoAlbum;
    public PhotoAlbumAdapter(Context context, PhotoAlbum photoAlbum)
    {
        this.mContext = context;
        this.mPhotoAlbum = photoAlbum;
    }
    ...
}

2( 传递this(这是 MainActivity 的实例(到 PhotoAlbumAdapter

mAdapter = new PhotoAlbumAdapter(this,mphotoAlbum);

3( 在OnBindViewHolder方法中使用mContext

    public override void OnBindViewHolder(RecyclerView.ViewHolder holder, int position)
    {
        mContext.Resources.GetString(Resource.String.no_of_bags);
    }

最新更新