Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/198.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Recyclerview中每个项目行的增量和减量值_Java_Android - Fatal编程技术网

Java Recyclerview中每个项目行的增量和减量值

Java Recyclerview中每个项目行的增量和减量值,java,android,Java,Android,我需要在RecyclerView中的textview的递增值和递减值中获得不同的值。首先,我将第一行中的值设置为2,在下一行中,当我按下ADD按钮时,数字显示为3。这对我来说是个大问题。所以请帮我找到解决这个问题的办法 package com.i.menu; import android.content.Context; import android.media.Image; import android.os.Build; import android.util.Base64; impor

我需要在RecyclerView中的textview的递增值和递减值中获得不同的值。首先,我将第一行中的值设置为2,在下一行中,当我按下ADD按钮时,数字显示为3。这对我来说是个大问题。所以请帮我找到解决这个问题的办法

package com.i.menu;

import android.content.Context;
import android.media.Image;
import android.os.Build;

import android.util.Base64;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.Filter;
import android.widget.Filterable;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;


import androidx.annotation.NonNull;
import androidx.annotation.RequiresApi;
import androidx.recyclerview.widget.RecyclerView;

import com.bumptech.glide.Glide;
import com.bumptech.glide.request.RequestOptions;

import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.List;

import static java.text.DateFormat.DEFAULT;


public class sacAdapter extends RecyclerView.Adapter<sacAdapter.MyViewHolder>
        implements Filterable {
    private Context context;
    private List<SAClist> SaCList;
    private List<SAClist> SACListFiltered;
    CheckBox check;
    Double a;
    int b;
    int c;
    Double d;
    Double e;
    Double value5;
    private SACAdapterListener listener;
    private DecimalFormat df2 = new DecimalFormat("#############.##");
    private DecimalFormat df = new DecimalFormat("0.#");
    private int number = 0;


    public class MyViewHolder extends RecyclerView.ViewHolder {

        public TextView  ProName, Rate,  Qty, Total;
        public ImageView thumbnail;
        public Button Qty1,Qty2;



//        public ImageView thumbnail;

        public MyViewHolder(View view) {
            super(view);


            ProName = view.findViewById(R.id.ProName);
            Rate = view.findViewById(R.id.Rate);
            Qty = view.findViewById(R.id.Qty);
            check = view.findViewById(R.id.check);
            Total = view.findViewById(R.id.Total);
            Qty1 = view.findViewById(R.id.Qty1);
            Qty2 = view.findViewById(R.id.Qty2);

            thumbnail = view.findViewById(R.id.thumbnail);

            view.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    // send selected contact in callback
                    listener.onSACSelected(SACListFiltered.get(getAdapterPosition()));
                }
            });
        }
    }


    public sacAdapter(Context context, List<SAClist> sacList, SACAdapterListener listener) {
        this.context = context;
        this.listener = listener;
        this.SaCList = sacList;
        this.SACListFiltered = sacList;
    }

    @Override
    public MyViewHolder onCreateViewHolder(ViewGroup parent1, int viewType1) {
        View itemView = LayoutInflater.from(parent1.getContext())
                .inflate(R.layout.sac_item_row, parent1, false);

        return new MyViewHolder(itemView);
    }

    @RequiresApi(api = Build.VERSION_CODES.O)
    @Override
    public void onBindViewHolder(@NonNull final MyViewHolder holder, final int position) {



        final SAClist saclist = SACListFiltered.get(position);
        holder.ProName.setText(saclist.getPName());
        holder.Rate.setText("Rate : "+saclist.getPRate());


        String Ra = saclist.PRate;
        double value1 = Ra.isEmpty() ? 0.0 : Double.parseDouble(Ra);
        String TOT1 = holder.Qty.getText().toString().trim();
        final double value3 = TOT1.isEmpty() ? 0.0 : Double.parseDouble(TOT1);

        a= value1*value3;
        String stringValue35 = Double.toString(Double.parseDouble(df2.format(a)));
        holder.Total.setText("TOTAL : "+stringValue35);


        byte[] decoder = Base64.decode(saclist.getPImage(),DEFAULT );



        Glide.with(context)
                .load(decoder)
                .apply(RequestOptions.noTransformation())
                .into(holder.thumbnail);





        holder.Qty1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

                number++;

                holder.Qty.setText(""+number);

                ////////////////////////////
                String Ra = saclist.PRate;
                double value1 = Ra.isEmpty() ? 0.0 : Double.parseDouble(Ra);
                String TOT5 = holder.Qty.getText().toString().trim();
                 value5 = TOT5.isEmpty() ? 0.0 : Double.parseDouble(TOT5);

                a= value1*value5;
                String stringValue35 = Double.toString(Double.parseDouble(df2.format(a)));
                holder.Total.setText("TOTAL : "+stringValue35);
            }
        });
        holder.Qty2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {


if(number<=0){
    number = 0;
}else {

    number--;


    holder.Qty.setText("" + number);
}

                /////////////////////////////////
                String Ra = saclist.PRate;
                double value1 = Ra.isEmpty() ? 0.0 : Double.parseDouble(Ra);
                String TOT = holder.Qty.getText().toString().trim();
                double value2 = TOT.isEmpty() ? 0.0 : Double.parseDouble(TOT);

                a= value1*value2;
                String stringValue35 = Double.toString(Double.parseDouble(df2.format(a)));
                holder.Total.setText("TOTAL : "+stringValue35);
            }
        });



    }

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

    @Override
    public Filter getFilter() {
        return new Filter() {
            @Override
            protected FilterResults performFiltering(CharSequence charSequence) {
                String charString = charSequence.toString();
                if (charString.isEmpty()) {
                    SACListFiltered = SaCList;
                } else {
                    List<SAClist> filteredList = new ArrayList<>();
                    for (SAClist row : SaCList) {

                        // name match condition. this might differ depending on your requirement
                        // here we are looking for name or phone number match
                        if (row.getPName().toLowerCase().contains(charString.toLowerCase())) {
                            filteredList.add(row);
                        }
                    }

                    SACListFiltered = filteredList;
                }

                FilterResults filterResults = new FilterResults();
                filterResults.values = SACListFiltered;
                return filterResults;
            }

            @Override
            protected void publishResults(CharSequence charSequence, FilterResults filterResults) {
                SACListFiltered = (ArrayList<SAClist>) filterResults.values;
                notifyDataSetChanged();
            }
        };
    }

    public interface SACAdapterListener {
        void onSACSelected(SAClist sac);
    }




}
package com.i.菜单;
导入android.content.Context;
导入android.media.Image;
导入android.os.Build;
导入android.util.Base64;
导入android.view.LayoutInflater;
导入android.view.view;
导入android.view.ViewGroup;
导入android.widget.Button;
导入android.widget.CheckBox;
导入android.widget.Filter;
导入android.widget.Filterable;
导入android.widget.ImageView;
导入android.widget.TextView;
导入android.widget.Toast;
导入androidx.annotation.NonNull;
导入androidx.annotation.RequiresApi;
导入androidx.recyclerview.widget.recyclerview;
导入com.bumptech.glide.glide;
导入com.bumptech.glide.request.RequestOptions;
导入java.io.ByteArrayInputStream;
导入java.io.File;
导入java.io.FileNotFoundException;
导入java.io.FileOutputStream;
导入java.io.IOException;
导入java.text.DecimalFormat;
导入java.util.ArrayList;
导入java.util.List;
导入静态java.text.DateFormat.DEFAULT;
公共类sacAdapter扩展了RecyclerView.Adapter
可过滤的{
私人语境;
私人名单;
私有列表过滤;
复选框检查;
双a;
int b;
INTC;
双d;
双e;
双重价值5;
专用SACAdapterListener侦听器;
private DecimalFormat df2=新的DecimalFormat(“##############”;
私有DecimalFormat df=新的DecimalFormat(“0.#”);
私有整数=0;
公共类MyViewHolder扩展了RecyclerView.ViewHolder{
公共文本视图项目名称、费率、数量、总数;
公共图像视图缩略图;
公共按钮Qty1、Qty2;
//公共图像视图缩略图;
公共MyViewHolder(视图){
超级(视图);
ProName=view.findViewById(R.id.ProName);
速率=view.findViewById(R.id.Rate);
数量=查看findViewById(R.id.Qty);
check=view.findViewById(R.id.check);
总计=view.findViewById(R.id.Total);
Qty1=view.findviewbyd(R.id.Qty1);
Qty2=view.findviewbyd(R.id.Qty2);
缩略图=view.findViewById(R.id.缩略图);
view.setOnClickListener(新的view.OnClickListener(){
@凌驾
公共void onClick(视图){
//在回拨中发送所选联系人
onSACSelected(SACListFiltered.get(getAdapterPosition());
}
});
}
}
公共sacAdapter(上下文上下文、列表sacList、SACAdapterListener侦听器){
this.context=上下文;
this.listener=listener;
this.SaCList=SaCList;
this.SACListFiltered=sacList;
}
@凌驾
public MyViewHolder onCreateViewHolder(视图组parent1,int viewType1){
View itemView=LayoutInflater.from(parent1.getContext())
.充气(R.layout.sac_item_row,parent1,false);
返回新的MyViewHolder(itemView);
}
@RequiresApi(api=Build.VERSION\u CODES.O)
@凌驾
public void onBindViewHolder(@NonNull final MyViewHolder holder,final int position){
最终SAClist SAClist=SACListFiltered.get(位置);
holder.ProName.setText(saclist.getPName());
holder.Rate.setText(“Rate:+saclist.getPRate());
字符串Ra=saclist.PRate;
double value1=Ra.isEmpty()?0.0:double.parseDouble(Ra);
String TOT1=holder.Qty.getText().toString().trim();
最终双精度值3=TOT1.isEmpty()?0.0:double.parseDouble(TOT1);
a=值1*3;
stringValue35=Double.toString(Double.parseDouble(df2.format(a));
holder.Total.setText(“总计:+stringValue35”);
字节[]解码器=Base64.decode(saclist.getPImage(),默认值);
带(上下文)滑动
.load(解码器)
.apply(RequestOptions.notTransformation())
.插入(支架.缩略图);
holder.Qty1.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
数字++;
支架数量setText(“+编号);
////////////////////////////
字符串Ra=saclist.PRate;
double value1=Ra.isEmpty()?0.0:double.parseDouble(Ra);
String TOT5=holder.Qty.getText().toString().trim();
value5=TOT5.isEmpty()?0.0:Double.parseDouble(TOT5);
a=值1*5;
stringValue35=Double.toString(Double.parseDouble(df2.format(a));
holder.Total.setText(“总计:+stringValue35”);
}
});
holder.Qty2.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
如果(数字请尝试这种方法

获取特定的holder
editText
值并增加/减少该值

holder.Qty1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

                number = Integer.parseInt(holder.Qty.getText().toString());
                number++;

                holder.Qty.setText(""+number);

                ////////////////////////////
                String Ra = saclist.PRate;
                double value1 = Ra.isEmpty() ? 0.0 : Double.parseDouble(Ra);
                String TOT5 = holder.Qty.getText().toString().trim();
                 value5 = TOT5.isEmpty() ? 0.0 : Double.parseDouble(TOT5);

                a= value1*value5;
                String stringValue35 = Double.toString(Double.parseDouble(df2.format(a)));
                holder.Total.setText("TOTAL : "+stringValue35);
            }
        });
        holder.Qty2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

number = Integer.parseInt(holder.Qty.getText().toString());
if(number<=0){
    number = 0;
}else {

    number--;


    holder.Qty.setText("" + number);
}

                /////////////////////////////////
                String Ra = saclist.PRate;
                double value1 = Ra.isEmpty() ? 0.0 : Double.parseDouble(Ra);
                String TOT = holder.Qty.getText().toString().trim();
                double value2 = TOT.isEmpty() ? 0.0 : Double.parseDouble(TOT);

                a= value1*value2;
                String stringValue35 = Double.toString(Double.parseDouble(df2.format(a)));
                holder.Total.setText("TOTAL : "+stringValue35);
            }
        });
holder.Qty1.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
number=Integer.parseInt(holder.Qty.getText().toString());
数字++;
支架数量setText(“+编号);
////////////////////////////
字符串Ra=saclist.PRate;
double value1=Ra.isEmpty()?0.0:double.parseDouble(Ra);
String TOT5=holder.Qty.getText().toString().trim();
value5=TOT5.isEmpty()?0.0:Double.parseDouble(TOT5);
a=值1*5;
字符串stringValue35=Double.toString(Double.parseDoubl