E/RecyclerView: Не adapter attached; skipping layout Android 4.4 KitKat

У меня есть эта ошибка E/RecyclerView: Не adapter attached; skipping layout, но я не знаю почему. Я прочитал различные вопросы о той же теме, но ничто не смогло помогать мне

С другой стороны ошибка не показывает меня в Android 5.0, когда составит код в android 4.4, эта ошибка появляется.

Это код, который я использую, recyclerview наполняет, когда он обнаруживает изменение, edittext наполняется:

EditText txCodeNumber;
public RecyclerView recyclerHarvest;
public RecyclerView.LayoutManager lManager;
public RegisterHarvestAdapter adapterRegister;

public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){

rootView  = inflater.inflate(R.layout.register_monitoring, container, false);

txCodeNumber           = (EditText)       rootView.findViewById(R.id.txcodenumber);
recyclerHarvest = (RecyclerView)  rootView.findViewById(R.id.recyclerHarvest);

txCodeNumber.setOnEditorActionListener(new EditText.OnEditorActionListener() {
            @Override
            public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {


                String resultUnit = null;
                Cursor cursoQuantity = new PrHarvestParameter(getActivity()).getConvert(txIdUnit.getText().toString(), txIdProduct.getText().toString(), txIdGrade.getText().toString());

                for (cursoQuantity.moveToFirst(); !cursoQuantity.isAfterLast(); cursoQuantity.moveToNext()) {

                    int value = cursoQuantity.getColumnIndex("value");
                    String values = cursoQuantity.getString(value);
                    resultUnit = String.valueOf((1 * Integer.parseInt(values)));

                }

                arrayLand.add(idtxland.getText().toString());
                arrayGrouper.add(txidGrouper.getText().toString());
                arrayProduct.add(txIdProduct.getText().toString());
                arrayVariety.add(txIdVariety.getText().toString());
                arrayGrade.add(txIdGrade.getText().toString());
                arrayDates.add(inputDate.getText().toString());
                arrayUnits.add(txIdUnit.getText().toString());
                arrayQuantityOrigin.add("1");
                arrayQuantity.add(resultUnit);
                arrayUser.add(shareIdUser);
                arrayCode.add(txCodeNumber.getText().toString());


                recyclerHarvest.setHasFixedSize(true);
                lManager = new LinearLayoutManager(getActivity());
                recyclerHarvest.setLayoutManager(lManager);

                final List<ConstructRegisterHarvest> ListComplete = getCursorList(arrayCode, arrayQuantity);
                adapterRegister = new RegisterHarvestAdapter(ListComplete, getActivity());
                recyclerHarvest.setAdapter(adapterRegister);
                recyclerHarvest.setItemAnimator(new DefaultItemAnimator());
                txCodeNumber.setText("");

                contador++;
                txQuantity.setText("" + contador);
            }
            return false;

    });

return rootView;
}

Я надеюсь, что они могут помогать мне. Большое спасибо!

ИЗДАННЫЙ

Восток - adapter:

public class RegisterHarvestAdapter extends RecyclerView.Adapter<RegisterHarvestAdapter.syncronizationViewHolder> {

    private Context mainContext;
    private List<ConstructRegisterHarvest> items;
    ArrayList<Integer> dataResolve = new ArrayList<>();

    public RegisterHarvestAdapter(List<ConstructRegisterHarvest> items, Context contexto) {
        this.mainContext = contexto;
        this.items = items;
    }

    static class syncronizationViewHolder extends RecyclerView.ViewHolder {


        // Campos respectivos de un item
        protected TextView Code;
        protected TextView Quantity;

        public syncronizationViewHolder(View v) {
            super(v);

            this.Code     = (TextView) v.findViewById(R.id.txCode);
            this.Quantity = (TextView) v.findViewById(R.id.txQuantity);
        }
    }


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

        View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.cardview_register_harvest, parent, false);

        return new syncronizationViewHolder(v);
    }

    @Override
    public void onBindViewHolder(final RegisterHarvestAdapter.syncronizationViewHolder viewHolder, final int position) {
        final ConstructRegisterHarvest item = items.get(position);
        viewHolder.itemView.setTag(item);
        viewHolder.Code.setText("" + item.getCode() );
        viewHolder.Quantity.setText("" + item.getQuantity());
    }


    @Override
    public int getItemCount() {
        return items.size();
    }
}
1
задан 23.06.2017, 19:57
1 ответ

Эта та soluciГіn окончательная, reciГ©n я только что решил эту ошибку. Проблема зиждится на том, чтобы сначала ты был должен инициализировать твои компоненты:

public class MainActivity extends AppCompatActivity{
private List<Contacto> milista=new ArrayList<>();
private RecyclerView recyclerView;
private AdaptContacto adaptContacto;
private LinearLayoutManager manager;
 @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    recyclerView=findViewById(R.id.recyclerContacto);        
    manager=new LinearLayoutManager(this);
    adaptContacto=new AdaptContacto(milista);
    recyclerView.setLayoutManager(manager);
    recyclerView.addItemDecoration(new DividerItemDecoration(this,DividerItemDecoration.VERTICAL));
    recyclerView.setAdapter(adaptContacto);        
}

Таким образом не покажет в Logcat эту докучливую ошибку. Сейчас, когда твой список получит данные, просто позвони в адаптер и сообщи ему, что aГ±adio в список (каков должен быть Глобаль) так:

adaptContacto.notifyDataSetChanged();

Надеялся Помочь тебе :)

0
ответ дан 24.11.2019, 08:00