Текст ярлыка не обновляется в файлах tableview в титане android.but работает в IOS

Я попытался обновить / изменить lebel в android с помощью titanium.but значение не отображается в тексте. Но я получаю обновленное значение в alert.But 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()); 

Здесь я получаю предупреждение с правильным обновленным значением. Но он не отображается в ярлыке. Можете ли вы дать мне идею решить эту проблему в android.

РЕДАКТИРОВАТЬ:

Из комментария VRK я тоже пробовал это. Но это не работает. Но я получаю предупреждение правильно.

 item.children[1].setText(squantity); 

РЕДАКТИРОВАТЬ:

Я попытался ответить jsplaine. Но я не могу получить решение. Здесь я создал tableview. В этой таблице tableview мы создаем view.in в этом представлении, у меня есть adidng additem, itemcounttext values. Если мы щелкаем по additem, значит нужно изменить значение itemcounttext. Это поток.

Как показано ниже снимок экрана, это представление детей моего приложения tableview:

 productname remove itemcount add image text image 

Это три изображения, текст, значения изображения добавляются в одном представлении. Вот почему я добавляю код для получения родительского представления при нажатии на изображение:

 var item=e.source.getParent(); 

Здесь я получаю parent.также я написал ниже код для получения метки для этого представления:

 item.children[1].text 

Если щелкнуть мышью на добавлении изображения, я получаю значение ярлыка, которое равно 1 правильно. И проверено с помощью этого alert(item.children[1].getText()) ;. Но обновленное значение не отображается. Это мое точное сомнение.

РЕДАКТИРОВАТЬ:

Это мой полный исходный код.

  dataArray = []; $.ViewCartItemslist_total_value.text = totalamount; for( var i=0; i<data.length; i++){ 

// создание таблицы

  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 })); 

// создаем представление внутри каждой строки 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); } 

Вместо того, чтобы ходить с родительским / дочерним деревом, просто создайте itemcounttext свойство additem:

 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, }); additem.countTextLabel = itemcounttext; adddeleteitemview.add(additem); additem.addEventListener('click', function(e) { var item=e.source; var squantity = e.source.squantity; squantity = Number(squantity) + 1; item.countTextLabel.setText(squantity); alert(item.countTextLabel.getText()); }); 

Я боролся с этим в течение большей части дня. Надеюсь, это помогает кому-то.

В моем случае у меня был табличный вид с только 1 пользовательской строкой по дизайну. Щелчок по строке позволил мне выбрать новое значение (имя и описание) из другого табличного представления, а затем обновить первые данные таблицы таблицы tableview с новыми выбранными значениями.

Для проблемного представления таблицы я использовал setData, но пользовательские строки были довольно сложными, поэтому я не хотел перестраивать одну строку из одной из этих сложных строк. Вот что сработало для меня … Я просто обновил метки в массиве данных, которые содержатся в представлении оболочки, содержащемся в строке. Этот способ, а не восстановление всего массива данных с нуля, я смог изменить массив, а затем просто установить данные снова. DataStatus [0] .children [0] .children [0] .text = sice.row.name;
DataStatus [0] .children [0] .children [1] .text = sice.row.statusdescription; tableviewStatus.setData (dataStatus);

У меня только 1 строка, поэтому dataStatus [0] адресует эту строку. Тогда первый ребенок – это представление оболочки, и я подсчитал свой макет, а 1-й и 2-й дочерние оболочки – метки, которые мне нужно обновить. Затем, после того как я изменил массив, я просто переделал setData. Работал как чемпион.

Надеюсь, это поможет кому-то.