Creating first App: Activity, Layout

Activity એ તમારી app નો એક પડદો છે, જે Java ના class તરીકે લખાય છે, અને એનું Layout એ XML ની file છે જે એ પડદો કેવો દેખાય છે એ વર્ણવે છે; Activity પોતાનું layout onCreate માં setContentView થી લાવે છે, અને એ રીતે દેખાવ (XML) વર્તન (Java) થી અલગ રહે છે.

9 min read · 10 cards · 2 checks

Read in: English · हिन्दी · ગુજરાતી


Theory

એક પડદા માટે બે files

તમારા FestConnect ના સ્વાગતના પડદાએ અમુક રીતે દેખાવું પડે (મથાળું, Register નું button) અને અમુક વસ્તુઓ કરવી પડે (button દબાય ત્યારે પ્રતિભાવ આપવો). Android જાણી જોઈને એ બે કામને બે files માં વહેંચે છે.

Activity (Java નો class) એ પડદાનું મગજ છે: એનું વર્તન. Layout (XML ની file) એ પડદાનો ચહેરો છે: એનો દેખાવ. એક પડદો, બે files, અને એમને જોડતી code ની એક જ line. આ વહેંચણી એ Android ના UI નો પહેલો મોટો વિચાર છે.

Theory

મંચ અને મંચ સંભાળનાર

એક નાટક વિચારો. સેટ (ચીતરેલો પડદો, રાચરચીલાની ગોઠવણ) અલગથી રચાય અને વર્ણવાય છે: એ છે XML નું layout. જે મંચ સંભાળનાર ક્રિયાનો ઇશારો કરે છે, ઘટનાઓને પ્રતિભાવ આપે છે, અને ખેલ ચલાવે છે એ છે Java માંનું Activity. સેટ અભિનય કરતો નથી; સંભાળનાર દૃશ્ય ચીતરતો નથી. એમને અલગ રાખવાથી એકને બીજાને ખલેલ પહોંચાડ્યા વગર બદલી શકાય છે.

Theory

Activity અને Layout, ઔપચારિક રીતે

  • Activity એ app નો એક પડદો છે, AppCompatActivity ને લંબાવતો Java નો class.
  • એનું જીવનચક્ર `onCreate()` થી શરૂ થાય છે, જે પડદો સર્જાય ત્યારે બોલાવાય છે.
  • onCreate ની અંદર તમે layout જોડવા `setContentView(R.layout.activity_main)` બોલાવો છો.
  • Layout એ res/layout માંની XML ની file છે જે UI વર્ણવે છે: પાત્રો (LinearLayout) અને widgets (TextView, Button).

દેખાવ XML માં વસે છે; વર્તન Java માં. એ જ છે separation of concerns.

Practical

activity_main.xml (દેખાવ)

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

    <TextView
        android:id="@+id/title"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Welcome to FestConnect" />

</LinearLayout>

Practical

MainActivity.java (વર્તન)

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        // attach the XML layout to THIS screen
        setContentView(R.layout.activity_main);
    }
}

Think first

બે files ને શું જોડે છે?

તમારી પાસે activity_main.xml (layout) અને MainActivity.java (Activity) છે. કઈ એક line Java ના પડદાને ખરેખર એ XML દેખાડે છે, અને એ ક્યાં જાય છે?

Show the answer

setContentView(R.layout.activity_main); એ line, જે onCreate() ની અંદર super.onCreate(...) પછી મુકાય છે. R.layout.activity_main એ તમારી XML ની file નો સર્જાયેલો ઉલ્લેખ છે, અને setContentView એને પડદા પર ફુલાવે છે. એ line વગર Activity ચાલે તો છે પણ કોરો પડદો દેખાડે છે, કારણ કે એને કયું layout દેખાડવું એ કોઈએ કહ્યું જ નથી. પડદો પોતાનો દેખાવ onCreate માં જ જોડે છે.

Quiz

Android માં Activity અને Layout વિશે કયું statement સાચું છે?

  1. Activity એ Java માં લખાયેલો પડદો છે; Layout એ XML માં લખાયેલું એનું UI છે
  2. Activity એ XML ની file છે; Layout એ Java નો class છે
  3. Activity અને Layout બંને XML માં લખાય છે
  4. એક Activity માં એકસાથે અનેક unrelated પડદા હોવા જ જોઈએ
Show the answer

Activity એ Java માં લખાયેલો પડદો છે; Layout એ XML માં લખાયેલું એનું UI છે

Activity એ Java ના class તરીકે અમલમાં મુકાયેલો એક પડદો છે, અને Layout એ એ પડદાનું XML માં વર્ણવાયેલું UI છે (A). Option B બંને અદલાબદલ કરે છે. Activity એ Java છે, XML નહીં (C). અને Activity એક જ કેન્દ્રિત પડદો દર્શાવે છે, ઠાંસીને ભરેલા અનેક unrelated પડદા નહીં (D). Java નું વર્તન સામે XML નો દેખાવ, એ સ્વચ્છ વહેંચણી જ આ પાઠ સ્થાપે છે.

Watch out

Activity/Layout ના ફાંદા

1. setContentView ભૂલી જવું: app ચાલે છે પણ પડદો કોરો રહે છે. onCreate માં હંમેશા layout જોડો.

2. કયું કયું છે એ ગૂંચવવું: Activity = Java (વર્તન), Layout = XML (દેખાવ).

3. XML માં તર્ક મૂકવો: XML ફક્ત UI વર્ણવે છે. Button નાં clicks અને data નું સંચાલન Java ના Activity માં (કે onClick ના જોડાણ દ્વારા) જ હોય, layout ની file ની અંદર તર્ક તરીકે ક્યારેય નહીં.

Theory

આગળ: આખો project, અને એનો ગુંદર

તમે એક પડદાની બે files જોઈ. હવે પછીનો પાઠ Android Studio માં આખો FestConnect નો project બનાવે છે, emulator પર 'Welcome' ચલાવે છે, અને એને app બનાવતા બીજા components ની સફર કરાવે છે, જેમાં AndroidManifest.xml અને આપોઆપ સર્જાતું R.java આવે છે, જે @+id/title ને તમે હમણાં વાપરેલા એ R.layout ના ઉલ્લેખમાં ફેરવે છે.

Summary

Key takeaways

  • Activity એ app નો એક પડદો છે, જે Java ના class તરીકે લખાય છે (AppCompatActivity ને લંબાવે છે).
  • Layout એ એ પડદાનું UI છે, જે res/layout માં XML માં લખાય છે (પાત્રો વત્તા widgets).
  • onCreate() એ Activity નું પ્રવેશબિંદુ છે; setContentView(R.layout.activity_main) layout જોડે છે.
  • દેખાવ XML માં વસે છે, વર્તન Java માં: separation of concerns.
  • setContentView ભૂલી જવાથી પડદો કોરો રહે છે.
  • Memory hook: સેટ (XML નું layout) અને મંચ સંભાળનાર (Java નું Activity).

Study this properly

This page is the lesson to read. In Gri-Learn the same topic is a graded deck: the self-checks are scored and your weak topics are tracked. Free to start.

Start this topic

Already have an account? Sign in

More from Creating basic App

Gri-Learn · syllabus-mapped B.C.A. lessons in English, Hindi and Gujarati

Creating first App: Activity, Layout · Mobile Application Development - 1 (option B) · Gri-Learn