Book Image

Appcelerator Titanium Smartphone App Development Cookbook Second Edition

Book Image

Appcelerator Titanium Smartphone App Development Cookbook Second Edition

Overview of this book

This book will take you through the process of building cross-platform, native UI applications for the mobile from scratch. You will learn how to develop apps, how to use GPS, cameras and photos and how to build socially connected apps. You will also learn how to package them for submission to the App Store and Google Play. This cookbook takes a pragmatic approach to creating applications in JavaScript from putting together basic UIs, to handling events and implementation of third party services such as Twitter, Facebook and Push notifications. The book shows you how to integrate datasources and server APIs, and how to use local databases. The topics covered will guide you to use Appcelerator Studio tools for all the mobile features such as Geolocation, Accelerometer, animation and more. You’ll also learn about Alloy, the Appcelerator MVC framework for rapid app development, and how to transfer data between applications using URLSchemes, enabling other developers to access and launch specific parts of your app. Finally, you will learn how to register developer accounts and publish your very own applications on the App Store and Google Play.
Table of Contents (21 chapters)
Appcelerator Titanium Smartphone App Development Cookbook Second Edition
Credits
About the Author
About the Reviewers
www.PacktPub.com
Preface
Index

Creating textfields for user input


TextFields in Titanium are single-line textboxes used to capture user input via the keyboard, and usually form the most common UI element for user input in any application, along with labels and buttons. In this section, we'll show you how to create a Textfield, add it to your application's View, and use it to capture user input. We'll style our textfield component using a constant value for the first time.

How to do it...

Type the following code after the view has been created but before adding that view to your window. If you've been following along from the previous recipe, this code should be entered after your labels have been created:

//creating the textfield for our loan amount input
var tfAmount = Ti.UI.createTextField({
  width: 140,
  height: 30,
  right: 20,
   borderStyle:Ti.UI.INPUT_BORDERSTYLE_ROUNDED,
   returnKeyType:Ti.UI.RETURNKEY_DONE,
  hintText: '1000.00'
});

amountRow.add(tfAmount);

//creating the textfield for our percentage interest 
//rate input
var tfInterestRate = Ti.UI.createTextField({
  width: 140,
  height: 30,
  right: 20,
   borderStyle:Ti.UI.INPUT_BORDERSTYLE_ROUNDED,
   returnKeyType:Ti.UI.RETURNKEY_DONE,
  value: interestRate
});

interestRateRow.add(tfInterestRate);

How it works...

In this example, we created a couple of basic textfield with a rounded border style, and introduced some new property types that don't appear in labels and imageviews, including hintText. The hintText property displays a value in the textfield, which disappears when that textfield has focus (for example, when a user taps it to enter some data using their keyboard).

The user input is available in the textfield property called value; as you must have noted in the preceding recipe, accessing this value is simply a matter of assigning it to a variable (for example, var myName = txtFirstName.value), or using the value property directly.

There's more...

textfield are one of the most common components in any application, and in Titanium there are a couple of points and options to consider whenever you use them.

Retrieving text

It's important to note that when you want to retrieve the text that a user has typed in a textfield, you need to reference the value property and not the text, like many of the other string-based controls!

Experimenting with other textfield border styles

Try experimenting with other textfield border styles to give your app a different appearance. Other possible values are the following:

Ti.UI.INPUT_BORDERSTYLE_BEZEL
Ti.UI.INPUT_BORDERSTYLE_LINE
Ti.UI.INPUT_BORDERSTYLE_NONE
Ti.UI.INPUT_BORDERSTYLE_ROUNDED