从RecyclerView(Xamarin)开始活动

时间:2017-03-05 20:44:12

标签: c# android xamarin xamarin.android

我有使用RecyclerView的Xamarin应用程序。

我在块中有TextView。我想点击一下开始活动。

这是代码:

public override void OnBindViewHolder(RecyclerView.ViewHolder holder, int position) {
    var movieViewHolder = (MovieViewHolder)holder;
    movieViewHolder.MovieNameTextView.Text = movies[position].CompanyName;
    var position_new = position + 1;
    movieViewHolder.MovieCount.Text = position_new.ToString();

    movieViewHolder.MovieNameTextView.Click += delegate {
        StartActivity(typeof(ClientLogin));
    };
}

但我有这个错误:

  

当前上下文中不存在名称“StartActivity”   无法解析符号'StartActivity'

enter image description here

如何从Recycler视图启动活动?

3 个答案:

答案 0 :(得分:0)

试试这个:

movieViewHolder.MovieNameTextView.Context.StartActivity(typeof(ClientLogin));

答案 1 :(得分:0)

是的,你应该。 StartActivity是Context类中可用的函数,而不是适配器。因此,抓取一个上下文实例(可能来自ViewHolders itemView)并调用holder.ItemView.Context.StartActivity(typeof(ClientLogin));

答案 2 :(得分:0)

您可以在MoviesAdapter构造函数中传入Activity(Context)的实例。将此实例保存在私有字段中,稍后在单击事件导航到新活动时使用它。

Activity _context;

public MovieAdapter(Activity context)
{
    _context = context;
}

当您创建适配器的对象时,您将传递Activity的实例:

var movieAdapter = MovieAdapter(this);

然后将您的点击委托修改为

movieViewHolder.MovieNameTextView.Click += delegate
{
    _context.StartActivity(typeof(ClientLogin));
};