Category Archives: How to

Android Development – made simple


Android Development

This tutorial is target for those who knows basic smartphone usage and then knows to program in java, others can also checkout this tutorial after knowing concepts of java

the installation includes downloading the Android Studio, checking for proper SDK, connect your phone through USB using the ADB driver
make sure you have it installed before starting to develop an application

Next is the Architecture
1st the Application layer is where all your application sits
2nd layer is the framework layer which interacts with the application for different purpose and services.
3 layer includes the libraries used for different operations such as media, graphics etc. this layer also contains Android Run time components
4 layer is the linux kernel as android is built on top of linux shell

Components of Android
Activities – user interaction with the smartphone
services – background process for the application
broadcast Receivers – system events and communications between os and the application
content providers – data related management

Fragments – portion of the ui within an activity. you need to open a contact us page within activity
view – UI element drawn in the screen. you want a rectangle filled with red colour with rounded corner
layouts – screen formats for the views.  – linear layout, grid layout etc
intents – interaction between components. eg. u need to call the camera service from your application or dial a phone number
resources -storage for all strings, values , constants styles etc. value pair
manifest – this is the configuration file for your application. some thing like a web.xml in J2ee application

To know more see this video

Download the presentation from here

Advertisements

How to in Jdeveloper ADF – increase the inputcomboboxlistofvalues dialog width


Problem:

To increase the width of the af:inputcomboboxlistofvalues dialog box.

Solution:

Recently I have been challenged to increase the width of the af:inputcomboboxlistofvalues dialog box. using contentStyle or inlinestyle will increase the width of the component and the dialog box will remain the same. So i thought of playing with the CSS file and could possibly achieve the width with the following hack.


<af:resource type=”css”>
.adf_dialog_main{
   min-width: 500px;
}
</af:resource>

How To in Jdeveloper ADF – To call a VO from another VO or from AM method


Scenario:
How to set an Attribute value from one VO into another VO?

Solution: 

//in you Application module Impl file have the follwing code written inside the method which will set the value for another vo
//lets say UploadView is the View object that you would want to set the value
ViewObject vo = findViewObject("tUploadView");
//if its not in Application Module, you will have to get the VO instance either from iterator if you are using this code in the bean
//get the rowset of UploadView
RowSet rs = vo.getRowSet();
//iterate through
while(rs.hasNext()){
//get the row
Row r = rs.next();
//set the value
r.setAttribute("ValueItem", value); //ValueItem is the Attribute that you want to set
}
}

How To in Jdeveloper ADF – To have hour and Time format restriction for inputText


Scenario:

How to have a Time format restriction for the adf inputText component?

Solution:

To have the time format restriction to restrict the time for upto 23:59 we will have a regex pattern for the af:inputText

<af:inputText label="" id="time" simple="true" value="" contentStyle="width:30px;" maximumLength="5">
<af:validateRegExp pattern"([01][0-9]|2[0-3]):[0-5][0-9]" messageDetailNoMatch="Time Format must match HH:MM" hint="Time Format: HH:MM"/>
</af:inputText>

How to in Jdeveloper ADF–Single row table selection


Scenario:

How to enable single row table selection?

Solution:

This seems an obvious question but newbie’s miss to understand this and will find difficulties in fixing this.

So what exactly we do to make the selection happen and confirm that it points to the current row of the af:table.

first, make sure that you have the following entries added to the af:table component of your page

selectedRowKeys="{bindings.Customers.collectionModel.selectedRow}"
selectionListener="#{bindings.Customers.collectionModel.makeCurrent}"
rowSelection="single"

Note: Customers is the tree binding for the table in the page definition file.

So what these entries do?

selectedRowKeys – the state of the selection is stored in this property. This property identifies the current selected row in the collectionModel of the table.

selectionListener – this is a listener that corresponds to the selection of the row. we bind it to the makeCurrent method of the table bindings collectionModel

rowSelection – we make it single row selection.

How To in Jdeveloper ADF Tutorials – Add Date based on another Date


Scenario:

How to calculate the datefield by considering another datefield that’s entered in by the user.
If you have entered a datefield “Today” as 12/04/2012
Now the requirement is to calculate another datefield’s date as 12/04/2012 + 30 days?

Solution:

  • Have two fields in the page. inputDate1 and inputDate2 bounded to the value in the bean as date1 and date2.
  • set inputDate1 autosubmit=true, and inputDate2 partialTrigger is set to the id of the inputDate1

<af:inputDate label="Date 1" id="id1" value="#{bean.date1}" autoSubmit="true"/>
<af:inputDate label="Date 2" id="id2" value="#{bean.date2}" partialTriggers="id1"/>

in the bean for the date fields. have getter and setter

in the getter of the date2 field have the following code


private Date date1;
private Date date2;

public void setDate1(Date date1) {
this.date1 = date1;
}

public Date getDate1() {
return date1;
}

public void setDate2(Date date2) {
this.date2 = date2;
}

public Date getDate2() {
if(date1 != null){
Calendar cal =Calendar.getInstance();
cal.setTime(date1);
cal.add(Calendar.DATE, 30);
date2 = cal.getTime();
}
return date2;
}

The source code is downloaded from here, for Jdeveloper 11.1.2.2.0

How To in Jdeveloper ADF Tutorials – creates new row in af:panelist


Scenario:

How to make a panellist that reads data from a database and according to the number of records in the database creates new row in the panellist?

Solution:


<af:iterator id="i3" value="#{emp.collectionModel}" var="row"> //emp.collectionModel is your collection
          <af:panelList id="pl1">
            <af:outputText value="#{row.empName}" id="ot3"/> // empName is the attribute to show
          </af:panelList>
        </af:iterator>