我是android开发的新手。我已经解决这个问题三天了。
我有一个对象类,它在一个listview中用三个字符串保存到firebase。
public class VanzatorProduse {
public String produsId;
public String produs;
public String pret;
public VanzatorProduse(){
}
public VanzatorProduse(String produsId, String produs, String pret) {
this.produsId = produsId;
this.produs = produs;
this.pret = pret;
}
public String getProdusId() {
return produsId;
}
public String getProdus() {
return produs;
}
public String getPret() {
return pret;
}
但我想计算产品价格的总和。如果这是可能的字符串,我尝试了很多方法,但没有解决办法。
以下是从firebase检索对象的代码:
databaseReference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
produseVanzatorList.clear();
for (DataSnapshot produsSnapshot : dataSnapshot.getChildren()){
VanzatorProduse vanzatorProduse = produsSnapshot.getValue(VanzatorProduse.class);
produseVanzatorList.add(vanzatorProduse);
}
VanzatorProduseList adapter = new VanzatorProduseList(ListaProduseActivity.this, produseVanzatorList);
listViewProduse.setAdapter(adapter);
}
我的适配器:
公共类vanzatorproduselist扩展了arrayadapter{
private Activity context;
private SparseBooleanArray selectedListItemsIds;
private List<VanzatorProduse> vanzatorProduseList;
public VanzatorProduseList(Activity context, List<VanzatorProduse> vanzatorProduseList){
super(context, R.layout.list_produse_vanzator, vanzatorProduseList);
this.context = context;
selectedListItemsIds = new SparseBooleanArray();
this.vanzatorProduseList = vanzatorProduseList;
}
@NonNull
@Override
public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) {
LayoutInflater inflater = context.getLayoutInflater();
View listViewItem = inflater.inflate(R.layout.list_produse_vanzator, null, true);
TextView textViewProdus1 = (TextView) listViewItem.findViewById(R.id.textViewProdus1);
TextView textViewPret1 = (TextView) listViewItem.findViewById(R.id.textViewPret1);
VanzatorProduse vanzatorProduse = vanzatorProduseList.get(position);
textViewProdus1.setText(vanzatorProduse.getProdus());
textViewPret1.setText(vanzatorProduse.getPret());
return listViewItem;
}
public SparseBooleanArray getSelectedIds() {
return selectedListItemsIds;
}
3条答案
按热度按时间yduiuuwa1#
czfnxgou2#
首先,在firebase数据库中将int值存储为字符串并不是一个好的做法。如果这样做,则需要将字符串的值解析为int
输出为:
10
.对于firebase还有一个重要的想法,您需要使用并声明
vanzatorProduseList
内部列表onDataChange()
方法,否则将始终null
. 这样做,tehn只需遍历列表,就这样。zpf6vheq3#
我以为价格是便宜的。