2016-07-27 155 views

回答

2

第一個解決方案自己事件監聽

應該由聽衆來完成,在活動創建Listener接口,未來實現適配器類接口。將Adapter對象設置爲Activity的偵聽器,並且當您想在Adapter中執行某些操作時,最後一個事件將運行偵聽器方法。

class Activity{ 

private Listener listener; 

//your activity listener interface 
public interface Listener{ 

     onButtonClick(); 
} 


private void setListener(Listener listener){ 

    this.listener=listener; 
} 

//example method 
private void youMethod(){ 

    YourAdapter adapter=new YourAdapter();//YourAdapter class implements Listener 
    //here You say that adapter is You listener 
    setListener(adapter); 

    //bind button 
    Button button = (Button)findViewById(R.id.buttonName); 
    button.setOnClickListener(new OnClickListener() { 
    public void onClick(View v) 
    { 

     //run listener after button click 
     buttonIsClicked(); 
     //or 
     //listener.onButtonClick(); 
    } 
    }); 

} 

private void buttonIsClicked(){ 
    //here use method 
    listener.onButtonClick(); 
} 
} 


//EXAMPLE ADAPTER 
class YourAdapter implements Activity.Listener{ 

//...adapter code 

void onButtonClick(){ 

    //your code on button click 
} 
} 

第二個解決方案適配器ONCLICKLISTENER

class Activity{ 


//example method 
private void youMethod(){ 

    YourAdapter adapter=new YourAdapter(); 

    //bind button 
    Button button = (Button)findViewById(R.id.buttonName); 
    //set adapter as onClickListener 
    button.setOnClickListener(adapter); 

} 

} 


//EXAMPLE ADAPTER 
class YourAdapter implements OnClickLstener{ 

//...adapter code 

    public void onClick(View v) 
    { 

     //adpater code after click 
    } 
} 

第三種解決方案 - 這是可以做到不帶網絡接口(不是好的做法)

只需添加方法你的適配器,並使用它:

button.setOnClickListener(new OnClickListener() { 
    public void onClick(View v) 
    { 

     //use adapter 
     adapter.onButtonClick(); 
    } 
    }); 


//EXAMPLE ADAPTER WITHOUT INTERFACE 
class YourAdapter{ 

//...adapter code 

void onButtonClick(){ 

    //your code on button click 
} 
} 
+0

如何調用此方法setListener(Listener listener)? –

+0

這是我的代碼YourAdapter適配器=新YourAdapter(); // YourAdapter類實現監聽 //在這裏說,適配器是你聽者 setListener(適配器); –

+0

setListener()方法將Listerer作爲參數。所以我怎麼能通過我的適配器對象 –

相關問題