Дооснащение не может получить данные - PullRequest
0 голосов
/ 16 февраля 2020

Я получаю данные. Json с Retrofit, но иногда он не работает, иногда работает. Не отображается в списке. Я не могу найти проблему.

Кто-нибудь мне поможет?

Я могу поделиться видео проблемы здесь. www.loom.com/share/467bc319f5a7435cb6162b1e66864ade Спасибо за все.

Мой адрес API: http://45.158.14.117: 3000 / todos

implementation 'com.squareup.retrofit2:retrofit:2.7.1'
implementation 'com.squareup.retrofit2:converter-gson:2.7.1'
implementation("com.squareup.okhttp3:okhttp:4.3.1")

REPO

   public class Repo {

    @SerializedName("_id")
    @Expose
    public String id;
    @SerializedName("title")
    @Expose
    public String title;
    @SerializedName("date")
    @Expose
    public String date;

ApiClient

    public class ApiClient {

    private static Retrofit retrofit=null;
    private static String Base_Url= "http://45.158.14.117:3000/";
    public static Retrofit getClient(){
        if(retrofit== null){
            retrofit = new Retrofit.Builder()
                    .baseUrl(Base_Url)
                    .addConverterFactory(GsonConverterFactory.create())
                    .client(new OkHttpClient())
                    .build();
            return retrofit;
        }
        return retrofit;
    }//ApiClient.class

}

MainActivity

    public class MainActivity extends AppCompatActivity {
    RestInterface restInterface;

    List<Repo> repoList=new ArrayList<>();
    CustomAdapter customAdapter;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);







        restInterface=ApiClient.getClient().create(RestInterface.class);

        Call<List<Repo>> call=restInterface.getRepo();

        call.enqueue(new Callback<List<Repo>>() {
            @Override
            public void onResponse(Call<List<Repo>> call, Response<List<Repo>> response) {

                for (Repo p : response.body()){
                    repoList.add(p);
                }


            }
            @Override
            public void onFailure(Call<List<Repo>> call, Throwable t) {

                Toast.makeText(getApplicationContext(), "HATA", Toast.LENGTH_LONG).show();
//Toast.LENGTH_LONG yerine 2000 girersek 2 sn gösterecektir.
            }
        });


        ListView listView = (ListView) findViewById(R.id.list);
        customAdapter = new CustomAdapter(MainActivity.this, repoList);
        listView.setAdapter(customAdapter);

    }
}

CustomAdapter

public class CustomAdapter extends BaseAdapter {

private LayoutInflater layoutInflater;
private List<Repo> repoList;

public CustomAdapter(Activity activity, List<Repo> repoList){
    layoutInflater = (LayoutInflater) activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    this.repoList = repoList;
}

@Override
public int getCount() {
    return repoList.size();
}

@Override
public Object getItem(int i) {
    return repoList.get(i);
}

@Override
public long getItemId(int i) {
    return i;
}

@Override
public View getView(int i, View view, ViewGroup viewGroup) {
    View satirView;

    satirView = layoutInflater.inflate(R.layout.list_layout, null);


      TextView idNumber =
                    (TextView) satirView.findViewById(R.id.idNumber);

    TextView name =
            (TextView) satirView.findViewById(R.id.name);





    Repo person = repoList.get(i);
    idNumber.setText(person.date);
    name.setText(person.title);




    return satirView;
}

}

...