我有一個基本的 lorem ipsum 響應 json url,如下所示: https://baconipsum.com/api/?type= all-meat?s=10&start-with-lorem=10在我的 APIService 接口中,我按如下方式調用它:import io.reactivex.Observable;import retrofit2.http.GET;public interface APIService{ @GET("application/json") Observable<List<NewsFeed>> getProductData();}我使用響應數據的 NewsFeed 模型:public class NewsFeed{ private String feed; public void setFeed(String feed) { this.feed = feed; } public String getFeed() { return feed; }}然后我試圖將該數據從 Url 傳遞到我的 recyclerview 中...... Gson gson = new GsonBuilder() .setLenient() .create(); Retrofit retrofit = new Retrofit.Builder() .baseUrl(url) .addConverterFactory(GsonConverterFactory.create(gson)) .addCallAdapterFactory(RxJava2CallAdapterFactory.create()) .build(); APIService apiService = retrofit.create(APIService.class); Observable<List<NewsFeed>> observable = apiService.getProductData().subscribeOn(Schedulers.newThread()) .observeOn(AndroidSchedulers.mainThread()); observable.subscribe(new Observer<List<NewsFeed>>() { @Override public void onSubscribe(Disposable d) { } @Override public void onNext(List<NewsFeed> newsFeeds) { newsFeedList = new ArrayList<>(); for(int i = 0; i < newsFeeds.size(); i++) { NewsFeed newsFeedModel = new NewsFeed(); newsFeedModel.setFeed(newsFeeds.get(i).getFeed()); newsFeedList.add(newsFeedModel); } mAdapter = new NewsAdapter(getActivity(), newsFeedList); recyclerView.setAdapter(mAdapter); recyclerView.setHasFixedSize(true); recyclerView.setNestedScrollingEnabled(false); } });}我如何讓這個錯誤消失?有沒有特定的方法來處理字符串結果?
1 回答

守著一只汪
TA貢獻1872條經驗 獲得超4個贊
你需要 APIService 接口是這樣的
import io.reactivex.Observable;
import retrofit2.http.GET;
public interface APIService
{
@GET("/api/?type=all-meat¶s=10&start-with-lorem=10")
Observable<List<String>> getProductData();
}
然后在創建Retrofit實例的地方你會這樣寫
Retrofit retrofit = new Retrofit.Builder()
.baseUrl("https://baconipsum.com/")
.addConverterFactory(GsonConverterFactory.create(gson))
.addCallAdapterFactory(RxJava2CallAdapterFactory.create())
.build();
之后,無論您在哪里使用NewsFeed類,都將其替換為String.
添加回答
舉報
0/150
提交
取消