[英]Callback inside anonymous functions, not getting the syntax propely
我正在嘗試在一個匿名類中實現一個void方法回調,由於在大型android代碼庫上工作,我對語法有點迷失。 我已經設置了一個監聽器和圖像按鈕,如下所示:
MyImageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
OnFollowingClick click;
click = new OnMyClick(param1, param2); // irrelevant for this thread
click.onClick(view); // irrelevant for this thread
// my problem is here!
click.setCallback( what do I pass in here? and where can define my callback?);
}
});
這是我定義的OnMyClick類和void回調接口:
public interface CallbackInterface {
public void Callback();
}
public class OnMyClick implements View.OnClickListener {
// I added this
CallbackInterface mCallBack;
public void setCallback(CallbackInterface callback) {
this.mCallBack = callback;
}
// Please call my callback
public void onFollowingChanged() {
if (mCallBack != null) {
mCallBack.Callback();
}
}
// a bunch of code in here that does not matter
// ...
我必須在某個地方創建回調,所以我猜我需要這樣的東西:
public class SomeClass implements CallbackInterface {
@Override
public void Callback() {
System.out.println("Hey, you called.");
}
}
問題在於偵聽器是一個匿名函數,因此我不想在某個地方定義一個單獨的類僅用作回調。
我看着這個線程,但沒有給我太多信息:
有沒有一種方法可以使匿名函數在范圍內實現我的接口,例如:
MyImageView.setOnClickListener(new View.OnClickListener() {
@Override
public void Callback() {
// please call me!
}
不確定是否有意義,非常感謝購買任何幫助。
謝謝!
就像您已經使用View.OnClickListener
一樣,只需匿名定義回調View.OnClickListener
。
MyImageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
OnFollowingClick click;
click = new OnMyClick(param1, param2); // irrelevant for this thread
click.onClick(view); // irrelevant for this thread
// your solution is here!
click.setCallback(new CallbackInterface() {
@Override
public void Callback() {
System.out.println("Hey, you called.");
}
});
}
});
如果這不是您的意思,請澄清一下,我會盡力幫助您。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.