2013-06-28 4 views
0

У меня есть макет с двумя вкладками. Когда нажата первая кнопка вкладки, строки заполняются с использованием удаленных данных. То же самое для второй вкладки, но расположение данных отличается.Titanium: Автоматический выбор первой строки динамически созданных строк

Моя проблема в том, что при переключении между вкладками мне нужно запустить событие щелчка в первой строке каждой вкладки.

Я создаю это приложение только для Android.

Любая помощь очень ценится ...

EDIT: Этот фиктивный код в верхней части головы, надеюсь, что это делает немного больше смысла.

leftTableView = Ti.UI.createTableView({ 
    data: populateTableView(0), 
    allowsSelection:true 
}); 

function populateTableView(byType) 
{ 
for(length of array loop){ 
    var tableViewRow=Ti.UI.createTableViewRow({ 
     my_obj:myObj[i] 
    }); 

    tabledata=[] 

    tableViewRow.addEventListener('click',function(e){ 
     e.row.setBackgroundImage('/images/selected-row-background.png'); 
    } 

    if byType 0 

     loop array display row for each object element 
     tableData.push(tableViewRow); 
     return tabledata 


    if byType 1 

     loop array display row for each object element, display differently 
     tableData.push(tableViewRow); 
     return tabledata 
} 
} 

tab 1 click event listener 

populateTableView(0); 
leftTableView.data[0].rows[0].fireEvent('click');//this fires but says e.row.setBackgroundImage is undefined 

tab 2 click event listener 

populateTableView(1) 
leftTableView.data[0].rows[0].fireEvent('click');//this fires but says e.row.setBackgroundImage is undefined 

ответ

1

Прослушивайте событие размытия на tabGroup и принять меры, каждый из вкладок становится активной вкладке

http://docs.appcelerator.com/titanium/latest/#!/api/Titanium.UI.TabGroup-event-blur

tabGroup.addEventListener('blur', function(_event) { 
    var activeTab = _event.tab; 

    // now that you have the activeTab, get the window, then the 
    // table and call a method to simulate a click on the first 
    // row 
}); 

передачи данных при стрельбе событие

var row = leftTableView.data[0].rows[0]; 
row.fireEvent('click', { row : row }) 
+0

Hey Aaron, I s hould of this this, мои вкладки не открывают/закрывают окна, они меняют строки под вкладками. Данные отображаются по-разному в зависимости от того, какая вкладка была нажата. У меня есть «клик» на каждой вкладке, когда они выбраны, просмотр таблицы заполняется, например. leftTableView.setData (function1) и leftTableView.setData (function2). Как только это действие будет завершено, мне нужно пропустить, чтобы выбрать первую строку из динамически добавленных строк. После вызова setData на вкладке нажмите кнопку прослушивателя событий, которую я добавил. leftTableView.selectRow (0), это не вызывает никаких ошибок, но ни одна строка не выбрана. – Random

+0

не следует за вами ... может быть, какой-то код? –

+0

Я поставил некоторый фиктивный код в верхней части головы – Random