Как получить значения из editText и других полей из переработчика просмотра адаптера для отправки - PullRequest
0 голосов
/ 04 марта 2020

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

Это код класса, в котором я инициализирую адаптер и у меня есть кнопка отправки:

public void buildDetailsAdapter(){
        //recicler view saleDetails
        SaleDetail saleDetail = new SaleDetail();
        final List<SaleDetail> saleDetailList = saleDetail.getSaleDetailsbyIdSaleHeader(idSaleHeader);
        Log.i(TAG, "buildProductsAdapter "+saleDetailList.size());
        MoneyDevolutionAdapter saleDetailAdapter = new MoneyDevolutionAdapter(saleDetailList, context);
        rcvMoneyDevolution.setAdapter(saleDetailAdapter);
    }

    public void initListeners(){
        btnDevolution.setOnClickListener( new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Log.i(TAG, "onClick: btnDevolution");

            }
        });
    } 

Это это код адаптера:

public void onBindViewHolder(@NonNull SaleDetailsViewHolder saleDetailsViewHolder, int i) {
        Product product = new Product().findProductById(saleDetailList.get(i).idProduct);
        if(product != null){
            saleDetailsViewHolder.txtNameSaleDetailsAdapter.setVisibility(View.VISIBLE);
            saleDetailsViewHolder.txtNameSaleDetailsAdapter.setText(""+product.nameProduct);
        }
        saleDetailsViewHolder.txtIdSaleDetailsAdapter.setText(""+saleDetailList.get(i).idProduct);
        saleDetailsViewHolder.txtQuantitySaleDetailsAdapter.setText(""+saleDetailList.get(i).quantity);
        saleDetailsViewHolder.txtSVSaleDetailsAdapter.setText(""+ Tools.setDecimalFormat().format(saleDetailList.get(i).unitValue));
        saleDetailsViewHolder.txtValuetotSaleDetailsAdapter.setText(""+Tools.setDecimalFormat().format(saleDetailList.get(i).totValue));
        List<String> quantityArray = qArray(saleDetailList.get(i).quantity);
        ArrayAdapter<String> dataAdapter =
                new ArrayAdapter<String>(context, android.R.layout.simple_spinner_item, quantityArray);
        dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

        saleDetailsViewHolder.spnQuantityProduct.setAdapter(dataAdapter);

    }

    private static List<String> qArray(int quantity){
        List<String> stringsArray = new ArrayList<>();

        for (int i=0;i<quantity;i++){
            stringsArray.add(String.valueOf(i+1));
        }
        return stringsArray;
    }

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

    public void setOnClickListener(View.OnClickListener listener){
        this.listener = listener;
    }

    @Override
    public void onClick(View v) {
        if(listener != null){
            listener.onClick(v);
        }
    }

    static class SaleDetailsViewHolder extends RecyclerView.ViewHolder {
        TextView txtNameSaleDetailsAdapter;
        TextView txtIdSaleDetailsAdapter;
        TextView txtQuantitySaleDetailsAdapter;
        TextView txtSVSaleDetailsAdapter;
        TextView txtValuetotSaleDetailsAdapter;
        Spinner spnQuantityProduct;

        SaleDetailsViewHolder(View itemView) {
            super(itemView);
            txtNameSaleDetailsAdapter = itemView.findViewById(R.id.txtNameSaleDetailsAdapter);
            txtIdSaleDetailsAdapter = itemView.findViewById(R.id.txtIdSaleDetailsAdapter);
            txtQuantitySaleDetailsAdapter = itemView.findViewById(R.id.txtQuantitySaleDetailsAdapter);
            txtSVSaleDetailsAdapter = itemView.findViewById(R.id.txtSVSaleDetailsAdapter);
            txtValuetotSaleDetailsAdapter = itemView.findViewById(R.id.txtValuetotSaleDetailsAdapter);
            spnQuantityProduct = itemView.findViewById(R.id.spnQuantityProducttoDevolution);
        }

    }

Любая помощь или предложения о том, как подойти к этому, было бы здорово, спасибо

1 Ответ

0 голосов
/ 04 марта 2020

решено с помощью этого урока

https://demonuts.com/android-recyclerview-with-edittext/

, и когда я изменяю код для своего кода, я получаю значения, делая это и получая доступ к pu sh кнопки:

public void getEditValue(){

        for(int i=0;i<saleDetailList.size();i++)
        {
            View view=rcvMoneyDevolution.getChildAt(i); // This will give you entire row(child) from RecyclerView
            if(view!=null)
            {
                TextView textView= view.findViewById(R.id.txtSVSaleDetailsAdapter);
                Log.e("Tag",textView.getText().toString());
                Spinner mySpinner = view.findViewById(R.id.spnQuantityProducttoDevolution);
                String text = mySpinner.getSelectedItem().toString();
                Log.e("Tag",text);
                String moneyDevolution = MoneyDevolutionAdapter.editModelArrayList.get(i).getEditTextValue();
                Log.e("Tag",moneyDevolution);

            }
        }

    }
...