2016-04-23 65 views
0

问:安卓:传递OnClickListener插入适配器

我们如何通过一个OnLongClickListener插入适配器在活动设置的时候吗?

适配器的构造:

public Activity mcontext; 
public View.OnLongClickListener LongClicking; 

public SubjectsAdapter(Activity context, View.OnLongClickListener longClick) { 
    this.mcontext = context; 
    this.LongClicking = longClick; 
} 

在活动:

adapter = new SubjectsAdapter(this, /*A OnLongClickListener here */); 

我知道这可能是一个密集的问题,我是比较新的到Android

回答

1

基本上你可以通过它作为匿名类

adapter = new SubjectsAdapter(this, new View.OnLongClickListener() { 
     @Override 
     public boolean onLongClick(View view) { 
      //do your stuff 
     } 
    }); 

但你如何注册此回调特定的看法?我建议注册它的视图,这是回调与setOnLongClickListener感兴趣,而不是传递给适配器(但它取决于您的应用程序)。

yourview.setOnLongClickListener(new View.OnLongClickListener() { 
     @Override 
     public boolean onLongClick(View view) { 
      //do your stuff 
     } 
    }); 
+0

不是第一个选项和在适配器的ViewHolder中设置OnLongCLickListener一样吗? (我正在使用RecyclerView) –

+0

是的,你可以做到这一点。你也可以在你的特定'RecyclerView.ViewHolder'中实现'View.OnLongClickListener'。看到这个[这个答案](http://stackoverflow.com/questions/30078344/handle-on-item-long-click-on-recycler-view)或本[这](http://stackoverflow.com/questions/27945078/onlongitemclick合recyclerview/27945635#27945635) – Luke