我有使用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'
如何从Recycler视图启动活动?
答案 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));
};