Quantcast
Channel: Appcelerator Developer Center Q&A Unanswered Questions 20
Viewing all articles
Browse latest Browse all 8068

Android tab group crash

$
0
0

Titanium SDK: 3.1.3 G.A. Platform & version: iOS 6.1 Device: iOS simulator Host OS: OSX 10.8++ Hi guys, i'm developing a cross-platform app with titanium studio, i did this:

index.xml

<Alloy>
    <!-- IOS TABGROUP MENU -->
        <TabGroup id="tab_group" platform="ios">
 
            <Require id="homeCTRL" src="home"></Require>
            <Require id="searchCTRL" src="search"></Require>
            <Require id="mapCTRL" src="map"> </Require>
            <Require id="suitcaseCTRL" src="suitcase"></Require>
            <Require id="settingsCTRL" src="settings"></Require>                        
 
        </TabGroup>
 
        <TabGroup id="tabGroup" platform="android">
 
            <Menu id="menu" platform="android">
                <MenuItem id="menuItem" title="Item 1" icon="images/action_about.png" showAsAction="Ti.Android.SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW" />
                <MenuItem id="menuItem" title="Item 2" icon="images/action_settings.png" showAsAction="Ti.Android.SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW" />
                <MenuItem id="menuItem" title="Item 3" icon="images/action_about.png" showAsAction="Ti.Android.SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW" />
             </Menu>
 
             <Require src="home"></Require>
 
        </TabGroup>
</Alloy>
index.js
Alloy.Globals.tabList = $.tab_group;
Alloy.CFG = {"tabGroup":$.tab_group};
 
if(Ti.Platform.osname === 'android'){ 
 
    $.tabGroup.addEventListener('open', function(e) {
 
        var activity = $.tabGroup.activity;
 
        if( Alloy.Globals.Android.Api >= 11 ) {
                activity.actionBar.title = "DemoApp";
                    activity.actionBar.displayHomeAsUp = true; 
                activity.actionBar.onHomeIconItemSelected = function() {
                    alert("Home icon clicked!");
                };  
        }
    });
 
    $.tabGroup.open();
 
}else{
    $.tab_group.open();
}
home.xml
<Alloy>
    <Tab id="home_tab" icon="ios_icons/binoculars.png" activeIcon="ios_icons/binoculars_active.png">
        <Window id="homeWin" title="Home" class="home">
            <View>
                <ActivityIndicator id="activityIndicator"></ActivityIndicator>
                <TableView id="itemsList" onClick="showItems"> 
 
                </TableView>
            </View>
        </Window>
    </Tab>
</Alloy>
home.js
function showItems(e) {  
 
    var payload={
        parentTab: $.home_tab,
        rowId:e.rowData.rowId,
        itemName:e.rowData.itemName,
        itemDesc:e.rowData.itemDesc
    };
 
    var w=Alloy.createController('detailwin',payload).getView();
    $.home_tab.open(w);
 
}
 
if(Ti.Platform.name === 'iPhone OS'){
 
    var collection = Alloy.createCollection("macroTemi"); 
 
    collection.fetch({
 
        success : function(){
 
            var id, name, description, row;
            var rowData=[];
 
            _.each(collection.models, function(element, index, list){
 
                id= element.attributes.id;              
                name = element.attributes.name;
                description = element.attributes.description;
 
                var payload={
                    rowId: id,
                    itemName: name,
                    itemDesc: description
                };
 
                row=Alloy.createController('row',payload).getView();
                rowData.push(row);
 
                $.itemsList.data=rowData;
 
            });
        },
        error : function(){
            Ti.API.error("hmm - this is not good!");
        }
 
    });
    $.homeWin.open();
}else{  
 
    var collection = Alloy.createCollection("macroTemi"); 
    Ti.API.info("pippo");
    Ti.API.info(JSON.stringify(collection));
 
    collection.fetch({
        success : function(){
    Ti.API.info("pippo2");
            var id, name, description, row;
            var rowData=[];
 
            _.each(collection.models, function(element, index, list){
 
                id= element.attributes.id;              
                name = element.attributes.name;
                description = element.attributes.description;
 
                var payload={
                    rowId: id,
                    itemName: name,
                    itemDesc: description
                };
 
                row=Alloy.createController('row',payload).getView();
                rowData.push(row);
 
                $.itemsList.data=rowData;
 
            });
        },
        error : function(){
            Ti.API.error("hmm - this is not good!");
        }
 
    });
 
}

If i install my app on android device, i've problem with home.js, i'm not ablet to do fetch the collection as i did for iOS besides if i put "$.homeWin.open();" in home.js controller for android it cause the app crash.

Could someone explain me how to resolve this problem? why the app crash? why it doesn't show the fetch collection as on iOS devices?

Thanks a lot.


Viewing all articles
Browse latest Browse all 8068

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>