2016-04-23 67 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