java - 无法使用 kaaes Spotify web api 获取播放列表的曲目
问题描述
我是一个非常菜鸟用户,我正在尝试在我的 Android 应用程序中播放来自 Spotify 的一些曲目。目前我正在使用 kaaes API: https ://github.com/kaaes/spotify-web-api-android
我正在努力从一个非常具体的播放列表和一个非常具体的用户 ID 中检索曲目。看来我做不到,我发现的唯一例子是旧的,对我没有帮助。这是我尝试过的:
SpotifyApi api = new SpotifyApi();
SpotifyService spotify = api.getService();
spotify.getPlaylistTracks("USERID","PLAYLISTID", new Callback<Pager<PlaylistTrack>>() {
@Override
public void success(Pager<PlaylistTrack> playlistTrackPager, Response response) {
Log.e("TEST", "GOT the tracks in playlist");
List<PlaylistTrack> items = playlistTrackPager.items;
for( PlaylistTrack pt : items){
Log.e("TEST", pt.track.name + " - " + pt.track.id);
}
}
@Override
public void failure(RetrofitError error) {
Log.e("TEST", "Could not get playlist tracks");
}
});
它点亮红色回调(当我打电话时new Callback<Pager<PlaylistTrack>>()
),它说:
无法解析符号“回调”
如果我 alt+enter 点击它,它会说:
将库“retrofit-2.4.0.retrofit-2.4.0”添加到类路径
如果我这样做,那么它会在 all 下划线Callback<Pager<PlaylistTrack>>
,但有错误:
然后我 alt+enter 再次它说:
类“从回调派生的匿名类”必须声明为抽象或在“回调”中实现抽象方法“onResponse(Call, Response)”
然后我 alt+enter 再次单击并选择:Implements methods onResponse() and onFailure()
并使用新方法调整旧代码,因此它将是:
spotify.getPlaylistTracks("USERID","PLAYLISTID", new Callback<Pager<PlaylistTrack>>() {
@Override
public void onResponse(Call<Pager<PlaylistTrack>> playlistTrackPager, Response<Pager<PlaylistTrack>> response) {
Log.e("TEST", "GOT the tracks in playlist");
List<PlaylistTrack> items = playlistTrackPager.items;
for( PlaylistTrack pt : items){
Log.e("TEST", pt.track.name + " - " + pt.track.id);
}
}
@Override
public void onFailure(Call<Pager<PlaylistTrack>> call, Throwable t) {
Log.e("TEST", "Could not get playlist tracks");
}
});
可现在,.items
红着眼说:
无法解析符号“项目”
我在网上找不到任何关于此的内容.. 似乎我无法将找到的旧代码示例与新的 API 方法相匹配。
谢谢
解决方案
您的第一个代码被剪断在我的测试项目中没有显示任何错误。我想重叠导入或其他库存在问题。
如果您添加以下导入并删除其他改造/ kaaes 导入,请检查它是否有效:
import kaaes.spotify.webapi.android.SpotifyApi;
import kaaes.spotify.webapi.android.SpotifyService;
import kaaes.spotify.webapi.android.models.Pager;
import kaaes.spotify.webapi.android.models.PlaylistTrack;
import retrofit.Callback;
import retrofit.RetrofitError;
import retrofit.client.Response;
如果这不起作用,请从您的类路径/项目中删除改造 2 库并重试,因为此包装器仍使用改造 1.9.0。
推荐阅读
- sql - 为什么这个窗口表达式不会导致除以零错误?
- java - 如何避免在文件中的 JSONArray 中写入重复值
- phpstorm - 如何在 PhpStorm 中包装第一个 HTML 属性
- c# - 写json“值”:“值”
- docker - 如何在 Docker 中拉取 debian8 (Jessie) 映像
- javascript - x 值的数量被裁剪
- c# - 使用 C# 调用 swagger Web 服务
- jquery - 选中某个复选框时将显示输入文本。取消勾选后会隐藏
- xamarin.forms - Xamarin ContentPage.ToolbarItems 移动到页面底部
- nullpointerexception - 如何在 getOntClass() 上调试 NullPointerException?