2016-02-10 4 views
0

поэтому у меня есть recyclerview, и в моем recyclerview у меня есть предметы. Если я удалю все видимые элементы в моем recyclerview, по-прежнему остается, что по сути «скрывает», что является причиной этого? Я считаю, что это простое решение, но что это такое?Recyclerview андроид студия "сокрытие"?

public class AdapterTags extends RecyclerView.Adapter<AdapterTags.ViewTags>{ 
private LayoutInflater mLayoutInflater; 
private ArrayList<Search> ListSearch=new ArrayList<>(); 
public AdapterTags(Context context){ 
    mLayoutInflater=LayoutInflater.from(context); 
} 
public void setTagsList (ArrayList<Search> ListSearch){ 
    this.ListSearch=ListSearch; 
    notifyItemRangeChanged(0,ListSearch.size()); 
} 

@Override 
public ViewTags onCreateViewHolder(ViewGroup parent, int viewType) { 
    View view= mLayoutInflater.inflate(R.layout.fragment_tags, parent, false); 
    ViewTags viewholder=new ViewTags(view); 
    return viewholder; 
} 

@Override 
public void onBindViewHolder(ViewTags holder, int position) { 
    final Search currentTags=ListSearch.get(position); 
    holder.mSearchText.setText(currentTags.getMtitle()); 
    holder.mAnswerPointsSearch.setText(currentTags.getMkey()); 
    holder.mSearchId.setText(currentTags.getMid()); 
    holder.mCourseId.setText(currentTags.getCourseId()); 
} 

@Override 
public int getItemCount() { 
    return ListSearch.size(); 
} 

class ViewTags extends RecyclerView.ViewHolder implements View.OnClickListener { 
    private TextView mSearchText; 
    private TextView mAnswerPointsSearch; 
    private TextView mSearchId; 
    private TextView mCourseId; 



    public ViewTags(View itemView){ 
     super(itemView); 
     mSearchText=(TextView)itemView.findViewById(R.id.SearchText); 
     mAnswerPointsSearch=(TextView)itemView.findViewById(R.id.AnswerPointsSearch); 
     mSearchId=(TextView)itemView.findViewById(R.id.SearchId); 
     mCourseId=(TextView)itemView.findViewById(R.id.CourseTextView); 
    } 

вызывая активность

private void JsonRequestMethod() { 
    mVolleySingleton = VolleySingleton.getInstance(); 
    mRequestQueue = mVolleySingleton.getRequestQueue(); 
    JsonArrayRequest request = new JsonArrayRequest(Request.Method.GET, URL_ANSWER, (String) null, new Response.Listener<JSONArray>() { 
     @Override 
     public void onResponse(JSONArray response) { 
      ListSearch = parseJSONResponseQuestion(response); 
      mAdapterDashBoard.setTagsList(ListSearch); 
      System.out.println(response); 
      System.out.println("it worked!!!"); 
     } 

    }, new Response.ErrorListener() { 
     @Override 
     public void onErrorResponse(VolleyError error) { 
      System.out.println(error); 

     } 
    }); 
    mRequestQueue.add(request); 
} 
+1

отправлю код пожалуйста. –

+0

Какую часть кода вы хотели бы видеть? У меня есть тонна, я не могу опубликовать все, что связано с моим recyclerview – Eli

+0

, конечно, где вы удаляете свои предметы и, возможно, ваш адаптер –

ответ

1

Я бы порекомендовал вам передать ваши детали через конструктор, а не называть notifyItemRangeChanged(), как только вы setItems. Вы также должны проверить, имеет ли ваш объект значение null в методе getItemCount, потому что, если это так, ваше приложение будет терпеть крах. Надеюсь это поможет.

+0

Эй, извините, что я отредактировал мой вопрос, у вас все еще есть эти рекомендации? – Eli

+0

Ваш код не показывает, где вы пытаетесь удалить элементы. Мне кажется, что вы только добавляете что-то в свой просмотр recycler. Можете ли вы просмотреть свой код? –

+0

Я должен был перефразировать проблему, проблема в том, что когда я получаю доступ к серверу, мой recyclerview не отображает все элементы, которые он оставляет последним. – Eli

Смежные вопросы