Xamarin.Android适配器GetString无法正常工作

时间:2018-01-25 06:14:42

标签: xamarin android-recyclerview xamarin.android

我在public function getAddressList($user_id) {} 内使用Resources.System.GetString(Resource.String.no_of_bags)。该类不包含context / Activity的引用。我得到了运行时异常。

1 个答案:

答案 0 :(得分:0)

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

Here is the official demo关于RecyclerView的使用情况,但在创建Context的实例时,它并未引用PhotoAlbumAdapter

你可以这样做:

1)在Context

中添加PhotoAlbumAdapter
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)在mContext方法

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