首页 > 解决方案 > 更改微调器中的值时更新文本字段的问题

问题描述

我是 Android Studio 移动应用程序开发的新手,我有一个关于如何更新数量更改时显示的价格的问题(在微调器中)。下面我为此附加了适配器类。回收站视图工作正常,我唯一想要的就是获取价格,当用户从微调器中选择数量时,价格当前为 500 以进行更新。我还附上了 android 应用程序活动的快照。下面是编码



public class allAdsAdapter extends RecyclerView.Adapter<allAdsAdapter.adsViewHolder>{

    private Context context;
    private List<Advertisment> ads;

    public allAdsAdapter(Context context , List<Advertisment> ads){
        this.context = context;
        this.ads = ads;
    }

    @NonNull
    @Override
    public adsViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        LayoutInflater layoutInflater = LayoutInflater.from(parent.getContext());
        View view = layoutInflater.inflate(R.layout.all_ads_card,parent,false);
        adsViewHolder adsView = new adsViewHolder(view);
        return adsView;
    }

    @Override
    public void onBindViewHolder(@NonNull adsViewHolder holder, int position) {
            Advertisment adCurrent = ads.get(position);
            holder.title.setText(adCurrent.getTitle());
            holder.description.setText(adCurrent.getDescription());

        Log.d("Image Value", "onBindViewHolder: " + adCurrent.getImage().trim() );
            Picasso.get().load(adCurrent.getImage().trim()).into(holder.image);
            holder.price.setText(Float.toString(adCurrent.getPrice()));

        ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(context,R.array.quantity_array,android.R.layout.simple_spinner_item);

        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);


        holder.spinner.setAdapter(adapter);



    }
    public void onItemSelected(AdapterView<?> parent, View view,int pos,long id){

        String quantity = (String)parent.getItemAtPosition(pos);



    }

    public void onNothingSelected(AdapterView<?> parent){

    }

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

    public class adsViewHolder extends RecyclerView.ViewHolder{

        ImageView image;
        TextView title,description,price;
        Spinner spinner;
        public adsViewHolder(@NonNull View itemView) {
            super(itemView);

            image = itemView.findViewById(R.id.img_all_ads);
            description = itemView.findViewById(R.id.desc_all_ads);
            title = itemView.findViewById(R.id.title_all_ads);
            price = itemView.findViewById(R.id.price_all_ads);
            spinner = (Spinner)itemView.findViewById(R.id.spinner_all_ads);

        }
    }
}

在此处输入图像描述

感谢您抽出宝贵的时间来解决这个问题!

标签: javaandroid

解决方案


感谢您通过,但我找到了解决方案,就是这样。只是一个简单的解决方案,乍一看并没有出现在我的脑海中。在 OnBindViewHolder 中,我在下面添加了此代码部分。

 holder.spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            @Override
            public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
                int quantity = Integer.parseInt((String) adapterView.getItemAtPosition(i)) ;
                Float price = Float.valueOf(holder.price.getText().toString());
                Float total = quantity * price;
                holder.price.setText(total.toString());

            }

推荐阅读