java - 更改微调器中的值时更新文本字段的问题
问题描述
我是 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);
}
}
}
感谢您抽出宝贵的时间来解决这个问题!
解决方案
感谢您通过,但我找到了解决方案,就是这样。只是一个简单的解决方案,乍一看并没有出现在我的脑海中。在 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());
}
推荐阅读
- python-3.x - Pyzmail/IMAPclient:不知道使用什么键
- javascript - 使用 Sequelize 按相关关键字查找所有图像,其中包含要包含/排除的关键字 ID 值数组
- javascript - 当只有一个选项时,Angular 会自动选择 Mat-Select
- ios - xcode警告“在ios 11之前估计部分页脚高度”是什么意思?
- c++ - 习惯于在c++中读取文件时忽略函数异常
- python - 运行并发 pysftp 命令的建议
- here-api - HERE 交通事故 API 调用不显示事故
- node.js - 如何通过`npm`搜索范围包名称?
- html - 更改扩展树枝模板标题栏的背景颜色
- python - 将numpy数组转换为字符串