JSON данные не выводятся, показывает пустой экран
Мое приложение должно возвращать JSON данные с моего API, но вместо этого я получаю пустой экран, при этом никаких ошибок не выводится. Пробовал парсить json данные с других источников (jsonplaceholder) в этом же приложении - все работает.
MainActivity.java
public class MainActivity extends AppCompatActivity {
RecyclerView recyclerView;
NetWorkService netWorkService;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
recyclerView = findViewById(R.id.recycler_view);
netWorkService.getInstance()
.getJSONApi()
.getCategories()
.enqueue(new Callback<ArrayList<Categories>>()
{
@Override
public void onResponse(Call<ArrayList<Categories>> call, Response<ArrayList<Categories>> response)
{
if(response.body()!=null)
{
ArrayList<Categories> postList = response.body();
ActivityAdapter activityAdapter = new ActivityAdapter(MainActivity.this,postList);
recyclerView.setAdapter(activityAdapter);
recyclerView.setLayoutManager(new LinearLayoutManager(MainActivity.this));
} else
{
Toast toast = Toast.makeText(MainActivity.this,
"responce = null", Toast.LENGTH_LONG);
}
}
@Override
public void onFailure(Call<ArrayList<Categories>> call, Throwable t)
{
Toast toast = Toast.makeText(MainActivity.this,
"Error, sorry", Toast.LENGTH_LONG);
t.printStackTrace();
}
});
}
}
NetWorkService.java
public class NetWorkService {
private static NetWorkService mInstance;
private static final String BASE_URL = "http://u99920uu.beget.tech/";
private Retrofit mRetrofit;
private NetWorkService()
{
mRetrofit = new Retrofit.Builder()
.baseUrl(BASE_URL)
.addConverterFactory(GsonConverterFactory.create())
.build();
}
public static NetWorkService getInstance()
{
if (mInstance==null)
{
mInstance = new NetWorkService();
}
return mInstance;
}
public JSONPlaceHolder getJSONApi ()
{
return mRetrofit.create(JSONPlaceHolder.class);
}
}
ActivityAdapter.java
public class ActivityAdapter extends RecyclerView.Adapter<ActivityAdapter.MyViewHolder> {
ArrayList<Categories> posts;
Context context;
public ActivityAdapter(Context ct, ArrayList<Categories> pt){
this.context=ct;
this.posts=pt;
}
@NonNull
@Override
public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
LayoutInflater inflater = LayoutInflater.from(context);
View view = inflater.inflate(R.layout.raw_categories, parent, false);
return new MyViewHolder(view);
}
@Override
public void onBindViewHolder(@NonNull ActivityAdapter.MyViewHolder holder, int position) {
holder.tvBody.setText(String.valueOf(posts.get(position).getId()));
holder.tvTitle.setText(posts.get(position).getTitle());
Picasso.with(context)
.load("https://dummyimage.com/1124x2238.jpg/ff4444/ffffff")
.placeholder(R.mipmap.ic_launcher)
.error(R.mipmap.ic_launcher)
.into(holder.img);
}
@Override
public int getItemCount() {
return posts.size();
}
public class MyViewHolder extends RecyclerView.ViewHolder{
TextView tvBody;
TextView tvTitle;
ImageView img;
public MyViewHolder(View itemView){
super(itemView);
tvBody = itemView.findViewById(R.id.tv_body);
tvTitle = itemView.findViewById(R.id.tv_title);
img = itemView.findViewById(R.id.img_view);
}
}
}
JSONPlaceHolder.java
public interface JSONPlaceHolder {
@GET("index.php")
Call<ArrayList<Categories>> getCategories();
}
Categories.java
public class Categories {
@SerializedName("albumId")
@Expose
private int albumId;
@SerializedName("id")
@Expose
private int id;
@SerializedName("name")
@Expose
private String title;
@SerializedName("url")
@Expose
private String url;
@SerializedName("description")
@Expose
private String thumbnailUrl;
public int getAlbumId() {
return albumId;
}
public void setAlbumId(int albumId) {
this.albumId = albumId;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public String getThumbnailUrl() {
return thumbnailUrl;
}
public void setThumbnailUrl(String thumbnailUrl) {
this.thumbnailUrl = thumbnailUrl;
}
}
Это мой json
[{"id":1,"name":"Fashion","description":"Category for anything related to fashion.","created":"2014-06-01 00:35:07","modified":"2014-05-30 18:34:33"},{"id":2,"name":"Electronics","description":"Gadgets, drones and more.","created":"2014-06-01 00:35:07","modified":"2014-05-30 18:34:33"},{"id":3,"name":"Motors","description":"Motor sports and more","created":"2014-06-01 00:35:07","modified":"2014-05-30 18:34:54"},{"id":5,"name":"Movies","description":"Movie products.","created":"2019-05-20 10:22:05","modified":"2019-08-20 10:30:15"},{"id":6,"name":"Books","description":"Kindle books, audio books and more.","created":"2018-03-14 08:05:25","modified":"2019-05-20 11:29:11"},{"id":13,"name":"Sports","description":"Drop into new winter gear.","created":"2016-01-09 02:24:24","modified":"2016-01-09 01:24:24"}]