Ошибка при получении данных API в просмотре списка ,
API вызывает, но список не отображается в виде списка, когда я выводил программу, которая запускается до метода call.enque
, после этой строки он прерывается на бросок в последней строке
я хочу получить этот ответ в своем ListView, но у меня возникла проблема, я не знаю, где я ошибаюсь
Это мой ответ Get API
{
"success": true,
"message": "",
"user": [
{
"id": 1,
"username": "Admin",
"email": "admin@gmail.com",
"role": "Administrator"
},
{
"id": 2,
"username": "Lawyer",
"email": "lawyer@gmail.com",
"role": "Lawyer"
},
{
"id": 3,
"username": "Driver",
"email": "driver@gmail.com",
"role": "Driver"
}
]
}
activity_main
<ListView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/ls"/>
Класс интерфейса api.java
public interface api {
String BASE_URL = "https://efce0212.ngrok.io/api/";
@GET("user")
Call<List<User>> getHeroes();
}
MainActivity.java
public class MainActivity extends AppCompatActivity {
ListView listView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listView = findViewById(R.id.ls);
getHeroes();
}
public void getHeroes() {
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(api.BASE_URL)
.addConverterFactory(GsonConverterFactory.create())
.build();
api api = retrofit.create(api.class);
Call<List<User>> call = api.getHeroes();
call.enqueue(new Callback<List<User>>() {
@Override
public void onResponse(Call<List<User>> call, Response<List<User>> response) {
final List<User> userList = response.body();
final String[] user = new String[userList.size()];
for (int i = 0; i < userList.size(); i++) {
user[i] = "Sucess:" + userList.get(i).getSucess() + "\n" + "message" + userList.get(i).getMessage() + "\n" + userList.get(i).getUserData();
}
listView.setAdapter(new ArrayAdapter<String>(getApplicationContext(), android.R.layout.simple_list_item_1, user));
}
@Override
public void onFailure(Call<List<User>> call, Throwable t) {
Toast.makeText(MainActivity.this, "Failed", Toast.LENGTH_SHORT).show();
}
});
}
}
Pojo USER.JAVA
public class User {
private String sucess;
private String message;
public UserData[] userData;
//UserData userData = new UserData();
public User(String sucess, String message, UserData[] userData) {
this.sucess = sucess;
this.message = message;
//this.userData = userData;
this.userData = userData;
}
public String getSucess() {
return sucess;
}
public String getMessage() {
return message;
}
public UserData[] getUserData() {
return userData;
}
}
UserData.class
public class UserData {
public String id;
public String name;
public String email;
public String role;
}