Lab 02 - Layouts

LinearLayout
LinearLayout is a view group that aligns all children in a single direction, vertically or horizontally. You can specify the layout direction with the android:orientation attribute.
LinearLayout has one goal in life: lay out children in a single row or column (depending on if its android:orientation is horizontal or vertical).
Another Layouts: RelativeLayout, FrameLayout, GridLayout, CoordinatorLayout etc



Example:

<LinearLayour xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="fill_parent"
   android:layout_height="fill_parent"
   android:orientation="vertical">
   
.....
</LinearLayout>

Fill_parent(renamed MATCH_PARENT in API Level 8 and higher) vs Wrap_content
- Setting the layout of a widget to fill_parent will force it to expand to take up as much space as is available within the layout element it's been placed in. It's roughly equivalent of setting the dockstyle of a Windows Form Control to Fill.
- Setting a View's size to wrap_content will force it to expand only far enough to contain the values (or child controls) it contains. For controls – like text boxes (TextView) or images (ImageView) – this will wrap the text or image being shown.



Difference Between OnClickListener vs OnClick:
OnClickListener is what waits for someone to actually click, onclick determines what happens when someone clicks
An OnClickListener enable you to separate the action/behavior of the click event from the View that triggers the event.
Since OnClickListener is an interface, the class that implements it has flexibilities in determining the instance variables and methods that it needs in order to handle the event.

Lately android added a xml attribute to views called android:onclick, that can be used to handle clicks directly in the view's activity without need to implement any interface.
The onClick with function binding in XML Layout is a binding between onClick and the function that it will call. The function have to have one argument (the View) in order for onClick to function.

example :
setOnClickListener Code Implementation:

  Button btn = (Button) findViewById(R.id.mybutton);
  btn.setOnClickListener(new View.OnClickListener() {
      @Override
      public void onClick(View v) {
      myFancyMethod(v);
      }
  });
  // some more code
  public void myFancyMethod(View v) {
      // does something very interesting
  }

XML Implementation:

  <Button android:id="@+id/mybutton"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="Click me!"
      android:onClick="myFancyMethod" />

LOGS
System logs are the most important information that DDMS can provide.
System logs describe all the actions performed by the device, the exceptions that occurred, and the information required for troubleshooting. The logs will appear in the panel named LogCat (do not confuse with Console). Each message in this list is accompanied by the following data (each one per column):

- Type of message

  • I - Information - informative message
  • D - Debug - useful debugging message
  • W - Warning - warning message (exceptions that are not very important and do not have an important impact on the component appear as such messages)
  • E - Error - error message (exceptions that break a component appear as such messages)
  • V - Verbose - additional information displayed by the programs (generally on request, they are used to detect problems generally resulting from misconfiguration of programs)

- Time - Date and time at which the message was written
- PID - The ID of the process that generated the message
- Tag - Label or category of message (useful for filters)
- Message - the actual message (text)

Exercises

Ex 1 A) Make a new app. Transform the layout into a LinearLayout with orientation vertical.
B) Make two Buttons with width match_parent and height wrap_content.
On click the first one must show messages using the Toast.

For the first button use the android:onClick=“push” – with push function
For the second button use the set on click listener.

 Toast.makeText(MainActivity.this,"You pushed the button from on create", Toast.LENGTH_LONG).show();
 Toast.makeText(this, "You pushed the button from push function", Toast.LENGTH_SHORT).show();

Ex 2 In onCreate function, write logs (Verbose, Debug, Info, Warning, Error). View them with Logcat (The Logcat window in Android Studio displays system messages, such as when a garbage collection occurs.
It displays messages in real time and keeps a history so you can view older messages)
The tag of a system log message is a short string indicating the system component from which the message originates.

 Logcat message format : Log.d(tag, message)

Ex 3 Do an activity overwritten by the following event features. Display a log message with the Event Tag in each of these features. The log message text must contain the name of the event.
For example, in onCreate() you can display a text message called onCreate ().

 •onCreate
 •onRestart
 •onStart
 •onResume
 •onPause
 •onStop
 •onDestroy

Ex 4 Write Logs in all the functions above and turn off the app. View them in Logcat

dapm/laboratoare/02.txt · Last modified: 2021/03/23 10:43 by ioana_maria.culic
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0