我在android上创建了一个简单的应用程序,这是一个搜索引擎电影。它使用GSON + Retrofit。
班级FilmApiRequester
有错误。
Api.getFilmInfo(apikey,filmTitle,pageLimit,callback);
非静态方法' getFilmInfo(java.lang.String,java.lang.String, java.lang.String,retrofit.Callback)'不能 从静态上下文中引用。
我不知道如何解决这个问题。
FilmApiRequester.class
public class FilmApiRequeter {
private static String ROOT ="http://example.com";
RestAdapter restAdapter = new RestAdapter.Builder()
.setEndpoint(ROOT)
.build();
Api filmRequester = restAdapter.create(Api.class);
private String apikey="ApiKeyExample";
public void getFilms(String filmTitle,String pageLimit, Callback<Film> callback)
{
Api.getFilmInfo(apikey,filmTitle,pageLimit,callback);
} }
Api.class
public interface Api{
@GET("/movies.json")
public void getFilmInfo(@Query("apikey") String apikey, @Query("q") String filmTitle, @Query("page_limit") String pageLimit, Callback<Film> callback); }
答案 0 :(得分:2)
你的问题在这里:
public void getFilms(String filmTitle,String pageLimit, Callback<Film> callback)
{
Api.getFilmInfo(apikey,filmTitle,pageLimit,callback); /// this line
}
您已将方法创建为:
public interface Api{
@GET("/movies.json")
public void getFilmInfo
由于您的方法getFilmInfo
是非静态的,因此如果没有实例,则无法调用它。因此,要么将其设为static
,要么创建实现接口Api
的类的实例。