Differences

This shows you the differences between two versions of the page.

Link to this comparison view

dapm:laboratoare:02 [2017/02/20 12:33]
127.0.0.1 external edit
dapm:laboratoare:02 [2021/03/23 10:43] (current)
ioana_maria.culic [Lab 02 - Layouts]
Line 1: Line 1:
-===== Laboratorul ​02=====+====== 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\\ 
 +\\ 
 +{{:​dapm:​laboratoare:​linearlayout_vs_relativelayout.png?​600|}} 
 +\\ 
 +\\
  
 +** Example: **
  
 +<​code>​
 +<​LinearLayour xmlns:​android="​http://​schemas.android.com/​apk/​res/​android"​
 +   ​android:​layout_width="​fill_parent"​
 +   ​android:​layout_height="​fill_parent"​
 +   ​android:​orientation="​vertical">​
 +   
 +.....
 +</​LinearLayout>​
 +</​code>​
 +**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.\\
 +\\
 +{{:​dapm:​laboratoare:​vertical_vs_horizontal_linearlayout.png?​700|}}
 +\\
 +\\
 +**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.1487586826.txt.gz · Last modified: 2018/03/08 15:17 (external edit)
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