User Tools

Site Tools


Sidebar

Privacy Policy

News

Version 2.50 is out since Jan 1st 2022


Frequently Asked Questions


Namespaces

Note for contributors

If you wish to create a new page in the DroidScript wiki, please click on the most appropriate namespace above and follow the notes for contributors there.

Because of spam, it has been necessary to add a CAPTCHA to the registration form and the save option for editing pages. You will not need to prove you are human if you are logged in, so please register.

Please feel free to improve any existing page, as well as adding new pages to increase the sum of public knowledge about DroidScript.

Formatting Syntax

built_in:lists

Lists

(Information and examples taken from the DroidScript documentation)

Description

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.

Example - Simple

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.

Example - Gray on white

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:

  • title : icon
  • title : body : icon

The available icons types are displayed using the following key words:

  • “folder”
  • “audiofolder”
  • “photofolder”
  • “videofolder”
  • “audio”
  • “photo”
  • “video”
  • “playlist”

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”

Example - Title + Icon

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

Example - Title + Body

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:

  • “AlumButton”
  • “GreenButton”
  • “OrangeButton”

Example - Orange Buttons

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:

Example - Gradient Background

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

Example - HTML Font Color

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

Methods

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 )

Available Options

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

Sample callbacks

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

built_in/lists.txt · Last modified: 2019/09/01 00:10 (external edit)