Android:将OnClickListener传递给适配器

时间:2016-04-23 18:45:40

标签: java android

问题:

在活动中设置OnLongClickListener时,如何将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 个答案:

答案 0 :(得分: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
        }
    });