单击recyclelerview项目上的事件导致活动冻结?

时间:2016-07-06 13:44:04

标签: android xamarin

我在android中的一个活动中有一个recyclelerview,它有各种类型的Item对象(绑定到不同的视图)。当我点击其中一个recyclerview视图上的按钮时,它应该触发一个事件,而该事件又会打开一个新活动。这是我第一次点击它,但是,当我再次尝试输入活动时这个点击事件导致活动冻结?我得到的唯一调试输出就是这个。没有outofmemoryexception或任何有用的东西。

[Mono] [0xb96777f0] worker finishing
Thread finished: <Thread Pool> #5
[ViewRootImpl] changeCanvasOpacity: opaque=false
[ViewRootImpl] changeCanvasOpacity: opaque=false
[Mono] [0xba234a20] worker finishing

当我点击“按钮”时。这是一个附加了点击列表器的relativelayout。我将数据添加到捆绑包中调用StartActivity()。下面是我打开此活动的方法

public override void openActivity(object sender, EventArgs e)
{
        RelativeLayout btn = (RelativeLayout) sender;
        int pos = (int) btn.GetTag (Resource.Id.bottom_btn);
        TweetPicItem picitem = (TweetPicItem) newsitems[pos];
        var tweetactivity = new Intent(cont, typeof(TweetActivityImage));

        tweetactivity.PutExtra("content", picitem.BodyText);
        tweetactivity.PutExtra("name", picitem.TeamName);
        tweetactivity.PutExtra("image_url", picitem.TweetImage);
        tweetactivity.PutExtra("club", picitem.CreatedBy);
        tweetactivity.PutExtra ("tint", picitem.BackgroundColour);
        tweetactivity.PutExtra("isliked", picitem.ILikeThis);
        tweetactivity.PutExtra("tweetid", picitem.Id);

        if(picitem.Comments != null)
            tweetactivity.PutExtra("comments" ,  JsonConvert.SerializeObject(picitem.Comments));

       cont.StartActivity(tweetactivity, options.ToBundle());
    } 

在onBind中我每次重新连接事件处理程序之前都会分离

        vh.bottombtn.SetTag(Resource.Id.bottom_btn, position);
        vh.bottombtn.Click -= openActivity;
        vh.bottombtn.Click += openActivity;

所以当按下按钮时,应用程序基本冻结了。由于缺少调试输出,我真的不知道这个问题会在哪里发生?首先我认为它是在onbind中附加了eventhandlers但是我每次在附加它之前明确地拆除了evenhandler吗?我也在多个设备上试过它,问题仍然存在。我知道在这里工作的信息很少,我自己难倒,我认为调试输出会以某种方式警告我,但我什么也得不回来。如果有任何想法id欣赏帮助/建议。

0 个答案:

没有答案