(Information and examples taken from the DroidScript documentation)
Create List objects using the CreateList method of the app object:
lst = app.CreateList( list, width, height, options );
Use the SetOnTouch and SetOnLongTouch methods of the List object to set the name of a function you want to be called when a list item is selected. The selected item is passed into your OnTouch callback function as a parameter every time an item is selected or long touched.
function OnStart() { lay = app.CreateLayout( "Linear", "VCenter,FillXY" ); lst = app.CreateList( "Fred,Bill,Jim", 0.8, 0.4 ); lst.SetOnTouch( lst_OnTouch ); lst.SetOnLongTouch( lst_OnLongTouch ); lay.AddChild( lst ); app.AddLayout( lay ); } function lst_OnTouch( item ) { app.ShowPopup( "Item = " + item, "Short" ); } function lst_OnLongTouch( item ) { app.ShowPopup( "Long Touch = " + item, "Short" ); }
You can change the look of a List using the SetBackColor and SetTextColor functions on the list object. You can also set a background image/pattern or background gradient for the List using the SetBackground and SetBackGradient functions.
function OnStart() { lay = app.CreateLayout( "Linear", "VCenter,FillXY" ); lst = app.CreateList( "Fred,Bill,Jim", 0.8, 0.4 ); lst.SetTextColor( "#ff666666" ); lst.SetBackColor( "#ffffffff" ); lst.SetOnTouch( lst_OnTouch ); lay.AddChild( lst ); app.AddLayout( lay ); } function lst_OnTouch( item ) { app.ShowPopup( "Touched Item = " + item ); }
The List object also supports multi-line list items and can show certain types of icon. Multi-line items are created by dividing each list item up using the ':' (colon) character. If you need to use a colon character in your item text then use this character sequence: ^c^.
You can have one icon and one or two lines of text using the following formats:
The available icons types are displayed using the following key words:
You can also use resource images or images from your sdcard instead of the keywords, for example:- “Img/MyIcon.png” or “/sdcard/images/image1.jpg”
function OnStart() { lay = app.CreateLayout( "Linear", "VCenter,FillXY" ); var data = "Folder:folder,Audio:audio,Photo:photo,Video:video"; lst = app.CreateList( data, 0.8, 0.4 ); lst.SetOnTouch( lst_OnTouch ); lay.AddChild( lst ); app.AddLayout( lay ); } function lst_OnTouch( item ) { app.ShowPopup( "Touched Item = " + item ); }
function OnStart() { lay = app.CreateLayout( "Linear", "VCenter,FillXY" ); var data = "The Hobbit:Author^c^ J.R.R. Tolkien:null"; data += ",Watership Down:Author^c^ Richard Adams:null"; lst = app.CreateList( data, 0.8, 0.4 ); lst.SetOnTouch( lst_OnTouch ); lay.AddChild( lst ); app.AddLayout( lay ); } function lst_OnTouch( item ) { app.ShowPopup( "Touched Item = " + item ); }
You can also create lists items that look like buttons by using one of the following options:
function OnStart() { lay = app.CreateLayout( "Linear", "VCenter,FillXY" ); var data = "Button 1,Button 2,Button 3,Button 4"; lst = app.CreateList( data, 0.8, 0.8, "OrangeButton" ); lst.SetBackColor( "#ffffff" ); lst.SetPadding( 0.1, 0.1, 0.1, 0.1 ); lst.SetOnTouch( lst_OnTouch ); lay.AddChild( lst ); app.AddLayout( lay ); } function lst_OnTouch( item ) { app.ShowPopup( "Touched Item = " + item ); }
Or create lists with Gradient backgrounds like this:
function OnStart() { lay = app.CreateLayout( "Linear", "VCenter,FillXY" ); var data = ""; for( var i=1; i<=30; i++) { if( i>1 ) data += ","; data += "Item "+i+":Details for item "+i+":null"; } lst = app.CreateList( data, 1, 1, "WhiteGrad" ); lst.SetTextColor1( "#ff555558"); lst.SetTextColor2( "#ff555558" ); lst.SetTextMargins( 0.04, 0, 0, 0 ); lst.SetOnTouch( lst_OnTouch ); lay.AddChild( lst ); app.AddLayout( lay ); } function lst_OnTouch( item ) { app.ShowPopup( "Touched Item = " + item ); }
function OnStart() { //Create a layout with objects vertically centered. lay = app.CreateLayout( "linear", "VCenter,FillXY" ); //Create a list and add it to layout. var data = "<font color='#ff0000'>Red</font>,"+ "<font color='#00ff00'>Green</font>,"+ "<font color='#0000ff'>Blue</font>" lst = app.CreateList( data,-1,-1,"html" ); lay.AddChild( lst ); //Add layout to app. app.AddLayout( lay ); }
Some controls use the same methods.
For examples of the same methods look here.
Method | Description |
---|---|
List.AddItem( title,body,image ) | |
List.GetAbsHeight() | |
List.GetAbsWidth() | |
List.GetHeight() | |
List.GetItemByIndex( index ) | |
List.GetLength() | |
List.GetList( delimeter ) | string = list.GetList(“,”); List.GetList() with no params returns object list |
List.GetPosition() | |
List.GetTextSize( mode ) | |
List.GetType() | |
List.GetVisibility() | |
List.GetWidth() | |
List.InsertItem(index,title,body,image) | |
List.RemoveAll() | |
List.RemoveItem( title ) | |
List.RemoveItemByIndex( index ) | |
List.ScrollToItem( name,body ) | |
List.ScrollToItemByIndex( index ) | |
List.SelectItem( title,body,scrollTo ) | |
List.SelectItemByIndex( index,scroll ) | index is a number, scroll could be true or false |
List.SetBackColor( colorCode ) | |
List.SetBackGradient( color1,color2,color3,p4,p5,p6,p7 ) | |
List.SetBackGradientRadial( x,y,r,color1,color2,color3,p7 ) | |
List.SetBackground( imagefile,options ) | |
List.SetDivider( height,color ) | |
List.SetEllipsize( mode ) | |
List.SetEllipsize1( mode ) | |
List.SetEllipsize2( mode ) | |
List.SetFontFile( file ) | |
List.SetHiTextColor1( colorCode ) | |
List.SetHiTextColor2( colorCode ) | |
List.SetItem( title,newTitle,newBody,newImage ) | |
List.SetItemByIndex( index,newTitle,newBody,newImage ) | |
List.SetList( list,delimeter ) | |
List.SetMargins( left,top,right,bottom ) | |
List.SetOnLongTouch( callback ) | sets the function called when list is long-touched |
List.SetOnTouch( callback ) | sets the function called when list is touched |
List.SetPadding( left,top,right,bottom ) | |
List.SetPosition( left,top,width,height ) | |
List.SetScale( x,y ) | |
List.SetSize( width,height ) | |
List.SetTextColor( colorCode ) | |
List.SetTextColor1( colorCode ) | |
List.SetTextColor2( colorCode ) | |
List.SetTextMargins( left,top,right,bottom ) | |
List.SetTextShadow( radius,dx,dy,color ) | |
List.SetTextShadow1( radius,dx,dy,color ) | |
List.SetTextShadow2( radius,dx,dy,color ) | |
List.SetTextSize( size,mode ) | |
List.SetVisibility( ShowHide ) |
Option | Description |
---|---|
AlumButton | Use this to display the list as buttons |
FontAwesome | Use this to display Icons from this inbuilt font |
GreenButton | Use this to display the list as buttons |
Html | Use this option to display html formated code |
OrangeButton | Use this to display the list as buttons |
WhiteGrad | Use this to display the list with a gradient background |
function lst_OnTouch( title, body, type, index ) { app.ShowPopup( "id: " + title + " nick: " + body ); }
function lst_OnLongTouch( title, body, type, index ) { app.ShowPopup( "id: " + title + " nick: " + body ); }
function lst_OnTouch( title, body, type, index ) { //Shows the index of the touched item app.ShowPopup(index) }
function lst_OnTouch( item ) { //Shows the touched item app.ShowPopup(item) }