Ho provato ad aggiornare/modificare il lebel in Android usando titanium.but il valore non viene mostrato sul testo. Ma sto ottenendo il valore aggiornato in l'avviso. Ma l'ios funziona perfettamente.Il testo dell'etichetta non si aggiorna in tableview figli in titanium android.but funziona in IOS
var itemcounttext = Ti.UI.createLabel({
top: 5,
color: "#000000",
left:10,
text:data[i].itemCount,
width: Ti.UI.SIZE,
height: Ti.UI.SIZE,
});
var additem = Ti.UI.createImageView({
image: "/images/plus.jpg",
top: 5,
width: Ti.UI.SIZE,
left:10,
height: Ti.UI.SIZE,
});
adddeleteitemview.add(additem);
additem.addEventListener('click', function(e)
{
var item=e.source.getParent();
squantity = e.source.squantity;
squantity = Number(squantity) + 1;
item.children[1].text = squantity;
alert(item.children[1].getText());
Qui sto ricevendo l'avviso con il valore aggiornato corretto. Ma non viene visualizzato nell'etichetta. Puoi darmi un'idea per risolvere questo problema in Android.
EDIT:
Da VRK commento Ho provato questo also.But non è working.but sto ottenendo l'avviso in modo corretto.
item.children[1].setText(squantity);
EDIT:
ho provato con jsplaine answer.But non riesco a ottenere la soluzione. Qui ho creato il tableview. In questa riga tableview stiamo creando la view.in quella vista ho aggiunto l'additem, itemcounttext values.if clicchiamo sull'additem significa che dobbiamo cambiare il valore itemcounttext.Questo è un flusso.
come qui di seguito screenshot è vista figli di mia app Tableview:
productname
remove itemcount add
image text image
questa tre immagine, testo, vengono aggiunti i valori di immagine in una view.That Ecco perché sto aggiungendo il codice per ottenere la vista padre mentre si fa clic aggiungere immagine:
var item=e.source.getParent();
qui sto ottenendo il parent.also mattino ha scritto il codice qui sotto per ottenere l'etichetta per questo punto di vista:
item.children[1].text
Se faccio clic sull'immagine aggiunta, sto ottenendo il valore dell'etichetta è aumentato di 1 correttamente .am verificato con questo codice alert(item.children[1].getText())
;. ma il valore aggiornato non viene mostrato. Questo è il mio dubbio esatto.
EDIT:
Questo è il mio codice sorgente completo.
dataArray = [];
$.ViewCartItemslist_total_value.text = totalamount;
for(var i=0; i<data.length; i++){
// creazione del tableviewrow
var row = Ti.UI.createTableViewRow({
layout : 'horizontal',
top:5,
width: "100%",
height: Ti.UI.SIZE,
});
row.add(Ti.UI.createImageView({
image: data[i].image,
top: 5,
width: '50',
height: Ti.UI.SIZE,
}));
row.add(Ti.UI.createLabel({
text: data[i].name,
top: 5,
width: 180,
font: { fontSize: '10dp' },
color: '#040404',
wordWrap: true,
height: Ti.UI.SIZE,
ellipsize: true
}));
// creazione a vista all'interno di ciascuna ogni riga di tableviewrow
var adddeleteitemview = Ti.UI.createView({
width: Ti.UI.SIZE,
height: Ti.UI.SIZE,
layout : 'horizontal',
left:10,
borderColor:"gray",
borderRadius:"10"
});
var removeitem = Ti.UI.createImageView({
image: "/images/minus.jpg",
top: 5,
left:10,
width: "15%",
height: Ti.UI.SIZE,
});
adddeleteitemview.add(removeitem);
var itemcounttext = Ti.UI.createLabel({
top: 5,
color: "#000000",
left:10,
text:data[i].itemCount,
textAlign:'center',
width: "15%",
height: Ti.UI.SIZE,
});
adddeleteitemview.add(itemcounttext);
var additem = Ti.UI.createImageView({
image: "/images/plus.jpg",
top: 5,
width: "15%",
left:10,
squantity : data[i].itemCount,
spprice :data[i].itemPrice,
height: Ti.UI.SIZE,
});
adddeleteitemview.add(additem);
additem.addEventListener('click', function(e)
{
var item=e.source.getParent();
spprice = e.source.spprice;
if(item.children[1].getText() == e.source.squantity){
squantity = e.source.squantity;
totalqty = Number(totalqty) + Number(1);
$.ViewCartItemslist_header_cart.text = totalqty;
totalamount = Number(totalamount) + Number((spprice));
squantity = Number(squantity) + 1;
item.children[1].text = squantity;
// item.itemcounttext.text = squantity;
// item.itemcounttext.setText(squantity);
// item.children[1].setText(squantity);
alert(item.children[1]+" "+item.children[1].getText());
$.ViewCartItemslist_total_value.text = totalamount;
totalprice = Number(spprice) * squantity;
}
else {
squantity = item.children[1].getText();
totalqty = Number(totalqty) + Number(1);
$.ViewCartItemslist_header_cart.text = totalqty;
totalamount = Number(totalamount) + Number((spprice));
squantity = Number(squantity) + 1;
item.children[1].text = squantity;
item.children[1].setText(squantity);
alert(item.children[1].getText());
$.ViewCartItemslist_total_value.text = totalamount;
totalprice = Number(spprice) * squantity;
}
});
row.add(adddeleteitemview);
dataArray.push(row);
row.addEventListener('click', function(e) {
});
$.ViewCartItemstableView.setData(dataArray);
}
hai provato item.children [1] .setText (squantity); – VRK
@VRK sì provato. Ma anche non funziona. –
Vedo definito itemcounttext, ma non è referenziato altrove. In questo codice, non è un genitore o figlio di qualsiasi altra cosa definita lì. Perché non rendere itemcounttext una proprietà di additem? Quindi potresti additem.itemcounttext.setText (qualunque cosa). – jsplaine