Java 如何进行改装';s从活动回调到类
我以前在活动中使用CreateBoothBar()。由于活动超过了4-5百行,我将其移动到一个单独的类中,但现在我不知道如何访问我的updateMap()Java 如何进行改装';s从活动回调到类,java,android,retrofit,Java,Android,Retrofit,我以前在活动中使用CreateBoothBar()。由于活动超过了4-5百行,我将其移动到一个单独的类中,但现在我不知道如何访问我的updateMap() updateMap代码是: private void updateMap(String path) { RestAdapter restAdapter = new RestAdapter.Builder() .setEndpoint(API_URL) .build(); MyS
updateMap
代码是:
private void updateMap(String path) {
RestAdapter restAdapter = new RestAdapter.Builder()
.setEndpoint(API_URL)
.build();
MyService service = restAdapter.create(MyService.class);
service.points(path, context);
}
其中,接口为:
public interface MyService {
@GET("/{point}")
void points(@Path("point") String path, MainActivity cb);
}
我应该在何处/如何移动/更改改装的回调,以便使其继续工作
PS:我知道这更像是一个java问题,而不是android。用于回调的类必须实现
回调
接口。请参阅此处了解更多信息
因此回调不依赖于活动类,而是依赖于回调接口的实现。因此,您可以将updateMap()
方法放在您喜欢的任何类中,因为它不依赖于上下文。下面是一个简短的例子
因此,您的界面可能如下所示
例如,在下面的活动中使用该类是一个简短的伪代码
MyRestClientClass mRestClientClass=new MyRestClientClass();
//在内部实例化rest客户端
mRestClientClass.initializeRestClient();
//例如,单击按钮后调用updateMap
setOnClickListener(新的OnClickListener(){
//请注意,这与改装回调的工作方式相同
公共void onClick(视图v){
//调用您的web服务
mRestClientClass.updateMethod();
}
});
public interface MyService {
@GET("/{point}")
void points(@Path("point") String path, Callback<YourClassType>);
}
public class MyRestClientClass{
//class context
MyService mService;
//helper method for service instantiation. call this method once
void initializeRestClient()
{
RestAdapter restAdapter = new RestAdapter.Builder()
.setEndpoint(API_URL)
.build();
mService = restAdapter.create(MyService.class);
}
//your service request method
void updateMap()
{
mService.points(....)
}
}