This shows you the differences between two versions of the page.
dapm:laboratoare:02 [2018/03/08 15:32] ioana_maria.culic |
dapm:laboratoare:02 [2021/03/23 10:43] (current) ioana_maria.culic [Lab 02 - Layouts] |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Lab 2 ====== | + | ====== Lab 02 - Layouts ====== |
**LinearLayout**\\ | **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 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.\\ | ||
Line 8: | Line 8: | ||
\\ | \\ | ||
\\ | \\ | ||
- | **Fill_parent vs Wrap_content** \\ | + | |
+ | ** 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 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.\\ | - 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.\\ | ||
Line 15: | Line 27: | ||
\\ | \\ | ||
\\ | \\ | ||
+ | **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** \\ | **LOGS** \\ | ||
System logs are the most important information that DDMS can provide. \\ | System logs are the most important information that DDMS can provide. \\ | ||
Line 32: | Line 73: | ||
- | ====== Exercises : ====== | + | ====== Exercises ====== |
- | **Ex 1** A) Make a new app. Transform the layout into a LinearLayout with orientation vertical. | + | **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.\\ | + | B) Make two Buttons with __width match_parent__ and __height wrap_content__.\\ |
- | On click the first one must show messages using the Toast. \\ | + | 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 first button use the **android:onClick="push"** – with __push function__ \\ |
For the second button use the **set on click listener.**\\ | For the second button use the **set on click listener.**\\ | ||