Android RecyclerView Adapter notifyItemChanged()已在池中获取IllegalStateException [英] Android RecyclerView Adapter notifyItemChanged() getting IllegalStateException Already in the pool

查看:76
本文介绍了Android RecyclerView Adapter notifyItemChanged()已在池中获取IllegalStateException的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

Iam使用Recyclerview并通过notifyItemChanged()更新它 使用linearlayoutmanager的recyclerView 当从套接字更新数据时,我通过适配器notifyItemChanged()更新了回收站 套接字每秒发送许多数据,这意味着我每秒调用适配器多次 它可以正常工作,但是在更新多次后会出现此错误

Iam using Recyclerview and update it by notifyItemChanged() recyclerView using linearlayoutmanager when data updated from socket i update recycler by adapter notifyItemChanged() socket send many data per second that mean i call adapter many times per second its working but when update it more times gives this error

Exception java.lang.IllegalStateException:已在池中! android.support.v7.widget.AdapterHelper.recycleUpdateOp(AdapterHelper.java:742) android.support.v7.widget.AdapterHelper.dispatchAndUpdateViewHolders(AdapterHelper.java:294) android.support.v7.widget.AdapterHelper.applyUpdate(AdapterHelper.java:220) android.support.v7.widget.AdapterHelper.preProcess(AdapterHelper.java:104) android.support.v7.widget.RecyclerView.consumePendingUpdateOperations(RecyclerView.java:1696) android.support.v7.widget.RecyclerView $ 1.run(RecyclerView.java:346) android.view.Choreographer $ CallbackRecord.run(Choreographer.java:959) android.view.Choreographer.doCallbacks(Choreographer.java:734) android.view.Choreographer.doFrame(Choreographer.java:667) android.view.Choreographer $ FrameDisplayEventReceiver.run(Choreographer.java:945) android.os.Handler.handleCallback(Handler.java:751) android.os.Handler.dispatchMessage(Handler.java:95) android.os.Looper.loop(Looper.java:154) android.app.ActivityThread.main(ActivityThread.java:6776) java.lang.reflect.Method.invoke(Method.java) com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:1518) com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1408)

Exception java.lang.IllegalStateException: Already in the pool! android.support.v7.widget.AdapterHelper.recycleUpdateOp (AdapterHelper.java:742) android.support.v7.widget.AdapterHelper.dispatchAndUpdateViewHolders (AdapterHelper.java:294) android.support.v7.widget.AdapterHelper.applyUpdate (AdapterHelper.java:220) android.support.v7.widget.AdapterHelper.preProcess (AdapterHelper.java:104) android.support.v7.widget.RecyclerView.consumePendingUpdateOperations (RecyclerView.java:1696) android.support.v7.widget.RecyclerView$1.run (RecyclerView.java:346) android.view.Choreographer$CallbackRecord.run (Choreographer.java:959) android.view.Choreographer.doCallbacks (Choreographer.java:734) android.view.Choreographer.doFrame (Choreographer.java:667) android.view.Choreographer$FrameDisplayEventReceiver.run (Choreographer.java:945) android.os.Handler.handleCallback (Handler.java:751) android.os.Handler.dispatchMessage (Handler.java:95) android.os.Looper.loop (Looper.java:154) android.app.ActivityThread.main (ActivityThread.java:6776) java.lang.reflect.Method.invoke (Method.java) com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:1518) com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1408)

我的适配器

public class Companies_Adapter extends 
RecyclerView.Adapter<Companies_Adapter.ViewHolder> {
private View view;
boolean isFirstTime = false;
private ArrayList<Company> companies;
private Context context;
private LayoutInflater mInflater;
ArrayList<Company> arraylist;

public Companies_Adapter(ArrayList<Company> chat_items, Context context) {
    this.companies = chat_items;
    this.context = context;
    mInflater = LayoutInflater.from(context);
    arraylist = new ArrayList<>();
    arraylist.addAll(chat_items);

}

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

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

public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
    public TextView LastTradePrice ,DailyHighPrice  ,DailyLowPrice  ,DiffLastPricePercent
            ,AskPrice ,AskVol ,BidPrice ,BidVol ,NameA,liquidity,liquidity_type,company_id ;

    public ViewHolder(View itemView) {
        super(itemView);
        LastTradePrice = (TextView)itemView.findViewById(R.id.LastTradePrice);
        DiffLastPricePercent = (TextView)itemView.findViewById(R.id.DiffLastPricePercent);
        AskPrice= (TextView)itemView.findViewById(R.id.AskPrice);
        AskVol = (TextView)itemView.findViewById(R.id.AskVol);
        BidPrice = (TextView)itemView.findViewById(R.id.BidPrice);
        BidVol = (TextView)itemView.findViewById(R.id.BidVol);
        NameA = (TextView)itemView.findViewById(R.id.NameA);
        liquidity = (TextView)itemView.findViewById(R.id.liquidity);
        liquidity_type = (TextView)itemView.findViewById(R.id.liquidity_type);
        DailyHighPrice = (TextView)itemView.findViewById(R.id.highpric);
        DailyLowPrice = (TextView)itemView.findViewById(R.id.lowprice);
        company_id = (TextView)itemView.findViewById(R.id.company_id);
    }



    @Override
    public void onClick(View v) {
        //  this.itemClickListener.onItemClick(v, getLayoutPosition());

    }
}

@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    View view = mInflater.inflate(R.layout.company_item, parent, false);
    return new ViewHolder(view);
}

@Override
public void onBindViewHolder(final ViewHolder holder, final int position) {
    Typeface lightFace = Typeface.createFromAsset(context.getAssets(), "fonts/Arial-BoldMT.otf");

    holder.company_id.setTextSize(TypedValue.TYPE_STRING,6);
    holder.AskPrice.setTextSize(TypedValue.TYPE_STRING,6);
    holder.DailyHighPrice.setTextSize(TypedValue.TYPE_STRING,6);
    holder.DailyLowPrice.setTextSize(TypedValue.TYPE_STRING,6);
    holder.AskVol.setTextSize(TypedValue.TYPE_STRING,6);
    holder.BidPrice.setTextSize(TypedValue.TYPE_STRING,6);
    holder.BidVol.setTextSize(TypedValue.TYPE_STRING,6);
    holder.DiffLastPricePercent.setTextSize(TypedValue.TYPE_STRING,6);
    holder.NameA.setTextSize(TypedValue.TYPE_STRING,7);
    holder.liquidity.setTextSize(TypedValue.TYPE_STRING,7);
    holder.liquidity_type.setTextSize(TypedValue.TYPE_STRING,6);
    holder.LastTradePrice.setTextSize(TypedValue.TYPE_STRING,7);
    holder.NameA.setTypeface(lightFace);
    holder.liquidity.setTypeface(lightFace);
    holder.LastTradePrice.setTypeface(lightFace);

    NumberFormat nf = NumberFormat.getNumberInstance(Locale.US);

    DecimalFormat precision = (DecimalFormat)nf;
    precision.applyPattern("0.00");

        if (companies.get(position).isChanged()) {
          if(companies.get(position).isFirstTime()) {
              holder.liquidity_type.setText(companies.get(position).getLiquidity_status());
              if (companies.get(position).getLiquidity_status().equals("0.00")){
                  holder.liquidity_type.setTextColor(context.getResources().getColor(R.color.green));
              }else {
                  if (companies.get(position).getLiquidity_status().equals("in")) {
                      holder.liquidity_type.setTextColor(context.getResources().getColor(R.color.green));
                  } else {
                      holder.liquidity_type.setTextColor(context.getResources().getColor(R.color.red));
                  }
              }
              holder.DailyHighPrice.setText(precision.format(Double.parseDouble(companies.get(position).getDailyHighPrice())));
              holder.DailyLowPrice.setText(precision.format(Double.parseDouble(companies.get(position).getDailyLowPrice())));
              holder.DailyLowPrice.setTextColor(context.getResources().getColor(R.color.red));
              holder.DailyHighPrice.setTextColor(context.getResources().getColor(R.color.green));
              holder.company_id.setText(companies.get(position).getStockCode());

               if (companies.get(position).getLastTradePrice() != null) {
                  holder.LastTradePrice.setText(precision.format(Double.parseDouble(companies.get(position).getLastTradePrice())));
              }
              if (companies.get(position).getDiffLastPricePercent() != null) {
                  holder.DiffLastPricePercent.setText
                          (precision.format(Double.valueOf(companies.get(position)
                                  .getDiffLastPricePercent())));
                  if (!companies.get(position).getDiffLastPricePercent().contains("-")) {
                      holder.DiffLastPricePercent.setTextColor(context.getResources().getColor(R.color.green));
                      holder.LastTradePrice.setTextColor(context.getResources().getColor(R.color.green));
                      holder.itemView.setBackgroundColor(context.getResources().getColor(R.color.green));
                      new CountDownTimer(400, 50) {
                          @Override
                          public void onTick(long arg0) {
                              // TODO Auto-generated method stub
                          }

                          @Override
                          public void onFinish() {
                              holder.itemView.setBackgroundColor(context.getResources().getColor(R.color.black));
                              companies.get(position).setChanged(false);
                          }
                      }.start();


                  } else {
                      holder.itemView.setBackgroundColor(context.getResources().getColor(R.color.red));
                      new CountDownTimer(400, 50) {

                          @Override
                          public void onTick(long arg0) {
                              // TODO Auto-generated method stub
                          }

                          @Override
                          public void onFinish() {
                              holder.itemView.setBackgroundColor(context.getResources().getColor(R.color.black));
                              companies.get(position).setChanged(false);
                          }

                      }.start();
                      holder.DiffLastPricePercent.setTextColor(context.getResources().getColor(R.color.red));
                      holder.LastTradePrice.setTextColor(context.getResources().getColor(R.color.orange));
                  }
              }

              if (companies.get(position).getAskPrice() != null)
                  holder.BidPrice.setText(precision.format(Double.parseDouble(companies.get(position).getAskPrice())));
              if (companies.get(position).getAskVol() != null && !companies.get(position).getAskVol().equals(""))
                  holder.BidVol.setText(NumberFormat.getNumberInstance(Locale.US).format(Double.valueOf(
                          companies.get(position).getAskVol())));
              if (companies.get(position).getBidPrice() != null)
                  holder.AskPrice.setText(companies.get(position).getBidPrice());
              if (companies.get(position).getBidVol() != null && !companies.get(position).getBidVol().equals(""))
                  holder.AskVol.setText(NumberFormat.getNumberInstance(Locale.US).format(Double.valueOf(
                          companies.get(position).getBidVol())));
              double thero = companies.get(position).getTermo();

              holder.liquidity.setText(precision.format(thero));
              if (thero >= 0.4 && thero < 0.8) {
                  holder.liquidity.setBackgroundResource(R.color.beige);
                  holder.liquidity.setTextColor(context.getResources().getColor(R.color.green_dark));
              }

              if (thero >= 0.8 && thero < 1.8) {
                  holder.liquidity.setBackgroundResource(R.color.yellow);
                  holder.liquidity.setTextColor(Color.BLUE);
              }
              if (thero >= 1.8 && thero < 2.8) {
                  holder.liquidity.setBackgroundColor(Color.BLUE);
                  holder.liquidity.setTextColor(Color.WHITE);
              }
              if (thero >= 2.8) {
                  holder.liquidity.setBackgroundResource(R.color.black);
                  holder.liquidity.setTextColor(context.getResources().getColor(R.color.gold));
              }
              if (thero < 0.4 && thero >= 0) {
                  holder.liquidity.setTextColor(Color.GREEN);
                  holder.liquidity.setBackgroundResource(R.color.black);

              }
              if (thero < 0) {
                  holder.liquidity.setTextColor(Color.RED);
                  holder.liquidity.setBackgroundResource(R.color.black);

              }
              holder.liquidity_type.setText(companies.get(position).getLiquidity_status());

              if (companies.get(position).getNameA() != null)
                  holder.NameA.setText(companies.get(position).getNameA());

              holder.itemView.setOnClickListener(new View.OnClickListener() {
                  @Override
                  public void onClick(View view) {
                      Intent intent = new Intent("aaaa");
                      intent.putExtra("name", companies.get(position).getNameA());
                      intent.putExtra("cprice", companies.get(position).getLastTradePrice());
                      intent.putExtra("cpercentage", companies.get(position).getDiffLastPricePercent());
                      intent.putExtra("openning_price", companies.get(position).getOpenning_price());
                      intent.putExtra("lower_price", companies.get(position).getDailyLowPrice());
                      intent.putExtra("deals", companies.get(position).getDeals_count());
                      intent.putExtra("value", companies.get(position).getValue());
                      intent.putExtra("higher", companies.get(position).getDailyHighPrice());
                      intent.putExtra("lastclose", companies.get(position).getLast_close());
                      intent.putExtra("size", companies.get(position).getSize());
                      intent.putExtra("point", companies.get(position).getCreation());
                      intent.putExtra("ss", companies.get(position).getSs());
                      intent.putExtra("strs", companies.get(position).getSTrs());
                      intent.putExtra("inout", holder.liquidity_type.getText().toString());
                      intent.putExtra("sb", companies.get(position).getSb());
                      intent.putExtra("ts", companies.get(position).getTs());
                      intent.putExtra("net_liquidity", companies.get(position).getSyola_Net());
                      intent.putExtra("stock_code", companies.get(position).getStockCode());
                      intent.putExtra("thero", companies.get(position).getTermo());
                      intent.putExtra("pos", position);
                      BroadcastHelper.sendInform(context, "open_company", intent);
                      BroadcastHelper.sendInform(context, "closedialog");

                  }
              });

          } else {
              holder.liquidity_type.setText(companies.get(position).getLiquidity_status());

              if (companies.get(position).getLiquidity_status().equals("0.00")){
                  holder.liquidity_type.setTextColor(context.getResources().getColor(R.color.green));
              }else {
                  if (companies.get(position).getLiquidity_status().equals("in")) {
                      holder.liquidity_type.setTextColor(context.getResources().getColor(R.color.green));
                  } else {
                      holder.liquidity_type.setTextColor(context.getResources().getColor(R.color.red));
                  }
              }
              holder.DailyHighPrice.setText(precision.format(Double.parseDouble(companies.get(position).getDailyHighPrice())));
              holder.DailyLowPrice.setText(precision.format(Double.parseDouble(companies.get(position).getDailyLowPrice())));
              holder.DailyLowPrice.setTextColor(context.getResources().getColor(R.color.red));
              holder.DailyHighPrice.setTextColor(context.getResources().getColor(R.color.green));
              holder.company_id.setText(companies.get(position).getStockCode());
              companies.get(position).setFirstTime(true);

              if (companies.get(position).getLastTradePrice() != null) {
                  holder.LastTradePrice.setText(precision.format(Double.parseDouble(companies.get(position).getLastTradePrice())));
              }
              if (companies.get(position).getDiffLastPricePercent() != null) {

                  holder.DiffLastPricePercent.setText
                          (precision.format(Double.valueOf(companies.get(position)
                                  .getDiffLastPricePercent())));
                  if (!companies.get(position).getDiffLastPricePercent().contains("-")) {
                      holder.DiffLastPricePercent.setTextColor(context.getResources().getColor(R.color.green));
                      holder.LastTradePrice.setTextColor(context.getResources().getColor(R.color.green));
                  } else {
                      holder.DiffLastPricePercent.setTextColor(context.getResources().getColor(R.color.red));
                      holder.LastTradePrice.setTextColor(context.getResources().getColor(R.color.orange));
                  }
              }
              if (companies.get(position).getAskPrice() != null)
                  holder.BidPrice.setText(companies.get(position).getAskPrice());
              if (companies.get(position).getAskVol() != null && !companies.get(position).getAskVol().equals(""))
                  holder.BidVol.setText(NumberFormat.getNumberInstance(Locale.US).format(Double.valueOf(
                          companies.get(position).getAskVol())));
              if (companies.get(position).getBidPrice() != null)
                  holder.AskPrice.setText(precision.format(Double.parseDouble(companies.get(position).getBidPrice())));
              if (companies.get(position).getBidVol() != null && !companies.get(position).getBidVol().equals(""))
                  holder.AskVol.setText(NumberFormat.getNumberInstance(Locale.US).format(Double.valueOf(
                          companies.get(position).getBidVol())));

            double thero = companies.get(position).getTermo();
              holder.liquidity.setText(precision.format(thero));
              if (thero >= 0.4 && thero < 0.8) {
                  holder.liquidity.setBackgroundResource(R.color.beige);
                  holder.liquidity.setTextColor(context.getResources().getColor(R.color.green_dark));
              }

              if (thero >= 0.8 && thero < 1.8) {
                  holder.liquidity.setBackgroundResource(R.color.yellow);
                  holder.liquidity.setTextColor(Color.BLUE);
              }
              if (thero >= 1.8 && thero < 2.8) {
                  holder.liquidity.setBackgroundColor(Color.BLUE);
                  holder.liquidity.setTextColor(Color.WHITE);
              }
              if (thero >= 2.8) {
                  holder.liquidity.setBackgroundResource(R.color.black);
                  holder.liquidity.setTextColor(context.getResources().getColor(R.color.gold));
              }
              if (thero < 0.4 && thero >= 0) {
                  holder.liquidity.setTextColor(Color.GREEN);
                  holder.liquidity.setBackgroundResource(R.color.black);

              }
              if (thero < 0) {
                  holder.liquidity.setTextColor(Color.RED);
                  holder.liquidity.setBackgroundResource(R.color.black);

              }

              if (companies.get(position).getNameA() != null)
                  holder.NameA.setText(companies.get(position).getNameA());

              holder.itemView.setOnClickListener(new View.OnClickListener() {
                  @Override
                  public void onClick(View view) {
                      Intent intent = new Intent("aaaa");
                      intent.putExtra("name", companies.get(position).getNameA());
                      intent.putExtra("cprice", companies.get(position).getLastTradePrice());
                      intent.putExtra("cpercentage", companies.get(position).getDiffLastPricePercent());
                      intent.putExtra("openning_price", companies.get(position).getOpenning_price());
                      intent.putExtra("lower_price", companies.get(position).getDailyLowPrice());
                      intent.putExtra("deals", companies.get(position).getDeals_count());
                      intent.putExtra("value", companies.get(position).getValue());
                      intent.putExtra("higher", companies.get(position).getDailyHighPrice());
                      intent.putExtra("lastclose", companies.get(position).getLast_close());
                      intent.putExtra("size", companies.get(position).getSize());
                      intent.putExtra("point", companies.get(position).getCreation());
                      intent.putExtra("ss", companies.get(position).getSs());
                      intent.putExtra("strs", companies.get(position).getSTrs());
                      intent.putExtra("inout", holder.liquidity_type.getText().toString());
                      intent.putExtra("sb", companies.get(position).getSb());
                      intent.putExtra("ts", companies.get(position).getTs());
                      intent.putExtra("net_liquidity", companies.get(position).getSyola_Net());
                      intent.putExtra("stock_code", companies.get(position).getStockCode());
                      intent.putExtra("thero", companies.get(position).getTermo());
                      intent.putExtra("pos", position);
                      BroadcastHelper.sendInform(context, "open_company", intent);
                      BroadcastHelper.sendInform(context, "closedialog");
                  }
              });
          }
        } else {
            holder.liquidity_type.setText(companies.get(position).getLiquidity_status());
            holder.DailyHighPrice.setText(precision.format(Double.parseDouble(companies.get(position).getDailyHighPrice())));
            holder.DailyLowPrice.setText(precision.format(Double.parseDouble(companies.get(position).getDailyLowPrice())));
            holder.DailyLowPrice.setTextColor(context.getResources().getColor(R.color.red));
            holder.DailyHighPrice.setTextColor(context.getResources().getColor(R.color.green));
            holder.company_id.setText(companies.get(position).getStockCode());
            if (companies.get(position).getLastTradePrice() != null)
                holder.LastTradePrice.setText(precision.format(Double.parseDouble(companies.get(position).getLastTradePrice())));
            if (companies.get(position).getDiffLastPricePercent() != null) {
                holder.DiffLastPricePercent.setText
                        (precision.format(Double.valueOf(companies.get(position)
                                .getDiffLastPricePercent())));

                if (!companies.get(position).getDiffLastPricePercent().contains("-")) {
                    holder.DiffLastPricePercent.setTextColor(context.getResources().getColor(R.color.green));
                    holder.LastTradePrice.setTextColor(context.getResources().getColor(R.color.green));
                } else {
                    holder.DiffLastPricePercent.setTextColor(context.getResources().getColor(R.color.red));
                    holder.LastTradePrice.setTextColor(context.getResources().getColor(R.color.orange));
                }
            }

            if (companies.get(position).getAskPrice() != null)
                holder.BidPrice.setText(precision.format(Double.parseDouble(companies.get(position).getAskPrice())));
            if (companies.get(position).getAskVol() != null && !companies.get(position).getAskVol().equals(""))
                holder.BidVol.setText(NumberFormat.getNumberInstance(Locale.US).format(Double.valueOf(
                        companies.get(position).getAskVol())));
            if (companies.get(position).getBidPrice() != null)
                holder.AskPrice.setText(precision.format(Double.parseDouble(companies.get(position).getBidPrice())));
            if (companies.get(position).getBidVol() != null && !companies.get(position).getBidVol().equals(""))
                holder.AskVol.setText(NumberFormat.getNumberInstance(Locale.US).format(Double.valueOf(
                        companies.get(position).getBidVol())));
            double thero = companies.get(position).getTermo();
            holder.liquidity.setText(precision.format(companies.get(position).getTermo()));
            if (thero >= 0.4 && thero < 0.8) {
                holder.liquidity.setBackgroundResource(R.color.beige);
                holder.liquidity.setTextColor(context.getResources().getColor(R.color.green_dark));
            }
            if (thero >= 0.8 && thero < 1.8) {
                holder.liquidity.setBackgroundResource(R.color.yellow);
                holder.liquidity.setTextColor(Color.BLUE);
            }
            if (thero >= 1.8 && thero < 2.8) {
                holder.liquidity.setBackgroundColor(Color.BLUE);
                holder.liquidity.setTextColor(Color.WHITE);
            }
            if (thero >= 2.8) {
                holder.liquidity.setBackgroundResource(R.color.black);
                holder.liquidity.setTextColor(context.getResources().getColor(R.color.gold));
            }
            if (thero < 0.4 && thero >= 0) {
                holder.liquidity.setTextColor(Color.GREEN);
                holder.liquidity.setBackgroundResource(R.color.black);

            }
            if (thero < 0) {
                holder.liquidity.setTextColor(Color.RED);
                holder.liquidity.setBackgroundResource(R.color.black);
            }
            holder.liquidity_type.setText(companies.get(position).getLiquidity_status());
            if(companies.get(position).getLiquidity_status().equals("in")){
                holder.liquidity_type.setTextColor(context.getResources().getColor(R.color.green));
            }else {
                holder.liquidity_type.setTextColor(context.getResources().getColor(R.color.red));
            }
            if (companies.get(position).getNameA() != null)
                holder.NameA.setText(companies.get(position).getNameA());

            holder.itemView.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    Intent intent = new Intent("aaaa");
                    intent.putExtra("name", companies.get(position).getNameA());
                    intent.putExtra("cprice", companies.get(position).getLastTradePrice());
                    intent.putExtra("cpercentage", companies.get(position).getDiffLastPricePercent());
                    intent.putExtra("openning_price", companies.get(position).getOpenning_price());
                    intent.putExtra("lower_price", companies.get(position).getDailyLowPrice());
                    intent.putExtra("deals", companies.get(position).getDeals_count());
                    intent.putExtra("value", companies.get(position).getValue());
                    intent.putExtra("higher", companies.get(position).getDailyHighPrice());
                    intent.putExtra("lastclose", companies.get(position).getLast_close());
                    intent.putExtra("size", companies.get(position).getSize());
                    intent.putExtra("point",companies.get(position).getCreation());
                    intent.putExtra("ss",companies.get(position).getSs());
                    intent.putExtra("strs",companies.get(position).getSTrs());
                    intent.putExtra("inout",holder.liquidity_type.getText().toString());
                    intent.putExtra("sb",companies.get(position).getSb());
                    intent.putExtra("ts",companies.get(position).getTs());
                    intent.putExtra("thero",companies.get(position).getTermo());
                     intent.putExtra("net_liquidity",companies.get(position).getSyola_Net());
                    intent.putExtra("stock_code",companies.get(position).getStockCode());
                    intent.putExtra("pos",position);
                    BroadcastHelper.sendInform(context, "open_company", intent);
                    BroadcastHelper.sendInform(context, "closedialog");
                }
            });
        }
 }

@Override
public int getItemViewType(int position) {
    return position;
}
}

推荐答案

经过多次搜索并尝试了许多解决方案 终于我找到了解决方案 我将ReyclerView更改为listView并通过此代码更新了我的列表

after many searches and try many solutions finally i find the solution i changed ReyclerView To listView and updating my list by this code

if (itemPos >= company_recycler.getFirstVisiblePosition() && itemPos-1<company_recycler.getLastVisiblePosition()){
                                    final View cell = company_recycler.getChildAt(itemPos - company_recycler.getFirstVisiblePosition() );
                                    runOnUiThread(new Runnable() {
                                        @Override
                                        public void run() {
                                            adapter.getView(itemPos-1, cell, company_recycler);
                                        }
                                    });

这对我来说很好

这篇关于Android RecyclerView Adapter notifyItemChanged()已在池中获取IllegalStateException的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆