как исправить ошибку 'int java.util.List.size ()' - PullRequest
0 голосов
/ 11 июля 2019


Я все время работаю из одного источника! но теперь получаю ошибку

int java.util.List.size ()


Теперь мой источник адаптера:

public class MessagesAdapter extends RecyclerView.Adapter<MessagesAdapter.msgsViewHoler> {

List<QueryMessages> queryMessages;
Context mtContext;
public MessagesAdapter(List<QueryMessages> queryMessages, MainActivity mainActivity){

    this.queryMessages=queryMessages;

}

@NonNull
@Override
public msgsViewHoler onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {

    View view= LayoutInflater.from(parent.getContext()).inflate(R.layout.message_row,parent,false);
    return new msgsViewHoler(view);

}

@Override
public void onBindViewHolder(@NonNull msgsViewHoler holder, int position) {

    final QueryMessages queryMessageses=queryMessages.get(position);
    Picasso.get()
            .load(queryMessageses.getMpic())
            .error(R.mipmap.ic_launcher)
            .fit()
            .into(holder.mpic);
    holder.mname.setText(queryMessageses.getMname());
    holder.message.setText(queryMessageses.getMessage());
    holder.tarikh.setText(queryMessageses.getTarikh());

}

@Override
public int getItemCount() {

    return queryMessages.size();

}

public class msgsViewHoler extends RecyclerView.ViewHolder{

    int id;
    CardView parent;
    ImageView mpic;
    TextView mname,message,tarikh;

    public msgsViewHoler(View itemView) {
        super(itemView);
        parent=itemView.findViewById(R.id.message_row);
        mpic=itemView.findViewById(iv_profile);
        mname=itemView.findViewById(R.id.tv_mastername);
        message=itemView.findViewById(R.id.tv_msg);
        tarikh=itemView.findViewById(R.id.tv_date);
    }
}

и выдайте эту ошибку:

java.lang.NullPointerException: попытка вызвать метод интерфейса int java.util.List.size () для ссылки на пустой объект at ir.arvandit.channeleto.adapter.MessagesAdapter.getItemCount (MessagesAdapter.java:62)

Вот строка:

return queryMessages.size();

Моя деятельность Главная его:

    RecyclerView rvmsg;
CardView message_row;
List<QueryMessages> queryMessages;
MessagesAdapter adapter;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    cast();
    onClick();

    ApiService service=ApiClient.getClient().create(ApiService.class);
    Call<List<QueryMessages>> call=service.getQueryMessages();
    call.enqueue(new Callback<List<QueryMessages>>() {
        @Override
        public void onResponse(Call<List<QueryMessages>> call, Response<List<QueryMessages>> response) {

            pros.setVisibility(View.GONE);
            queryMessages=response.body();
            adapter=new MessagesAdapter(queryMessages,MainActivity.this);
            rvmsg.setAdapter(adapter);

        }

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

            pros.setVisibility(View.GONE);
            nonet.setVisibility(View.VISIBLE);

        }
    });

}

public void cast(){


    rvmsg=findViewById(R.id.rv_message);
    rvmsg.setLayoutManager(new LinearLayoutManager(this,LinearLayoutManager.VERTICAL,false));

}

теперь мне нужна помощь для исправления этой ошибки!

Ответы [ 2 ]

0 голосов
/ 11 июля 2019

в новой версии модифицировать, если в вашем json есть бесплатный параметр, получите эту ошибку
например мне нужен идентификатор, имя, номер
но в моем json есть идентификатор, имя, номер, дата ....
я даю эту ошибку! и некоторое время, если в ApiService есть ложный URL
танки на помощь всем

0 голосов
/ 11 июля 2019

Проблема указана ниже:

 private static final String TAG = "CurrentActivity";

@Override
        public void onResponse(Call<List<QueryMessages>> call, 
          Response<List<QueryMessages>> response) {
            Log.v(TAG, "onResponse=" + response.body().toString());

        }

Проверьте погоду response.body() или response - это ArrayList из <List<QueryMessages>>

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...