Creating first App: Activity, Layout

एक Activity आपकी app की एक screen है, एक Java class की तरह लिखी गई, और इसका Layout वह XML file है जो describe करती है वह screen कैसी दिखती है; Activity onCreate में setContentView से अपना layout load करती है, look (XML) को behaviour (Java) से अलग रखते हुए।

9 min read · 10 cards · 2 checks

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


Theory

एक screen के लिए दो files

आपकी FestConnect welcome screen को एक ख़ास तरह से दिखना है (एक title, एक Register button) और चीज़ें करनी हैं (button tap होने पर react करना)। Android जानबूझकर उन दो कामों को दो files में बाँट देता है।

Activity (एक Java class) screen का brain है: इसका behaviour। Layout (एक XML file) screen का face है: इसकी appearance। एक screen, दो files, code की एक line से जुड़ी हुई। यह split Android UI का पहला बड़ा idea है।

Theory

Stage और stage manager

एक play सोचिए। Set (painted backdrop, furniture placement) अलग से design और describe किया जाता है: वह XML layout है। Stage manager जो action cue करता है, events को react करता है, और show चलाता है वह Java में Activity है। Set act नहीं करता; manager scenery नहीं paint करता। उन्हें अलग रखना हर एक को दूसरे को disturb किए बिना बदलने देता है।

Theory

Activity और Layout, formally

  • एक Activity app की एक screen है, AppCompatActivity extend करती एक Java class।
  • इसका lifecycle `onCreate()` पर शुरू होता है, जो screen बनने पर call होता है।
  • onCreate के अंदर आप `setContentView(R.layout.activity_main)` call करते हैं एक layout attach करने के लिए।
  • एक Layout res/layout में एक XML file है जो UI describe करती है: containers (LinearLayout) और widgets (TextView, Button)।

Look XML में रहता है; behaviour Java में रहता है। यही है separation of concerns।

Practical

activity_main.xml (look)

<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 (behaviour)

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 screen को actually वह XML display कराती है, और यह कहाँ जाती है?

Show the answer

Line setContentView(R.layout.activity_main);, जो super.onCreate(...) के बाद onCreate() के अंदर रखी जाती है। R.layout.activity_main आपकी XML file का एक generated reference है, और setContentView इसे screen पर inflate करता है। उस line के बिना, Activity चलती है पर एक blank screen दिखाती है, क्योंकि किसी ने इसे नहीं बताया कौन सा layout display करना है। onCreate वह जगह है जहाँ एक screen अपनी appearance wire करती है।

Quiz

Android में, Activity और Layout के बारे में कौन सा statement सही है?

  1. एक Activity Java में लिखी एक screen है; एक Layout XML में लिखी इसकी UI है
  2. एक Activity XML file है; एक Layout Java class है
  3. Activity और Layout दोनों XML में लिखे जाते हैं
  4. एक Activity में एक साथ कई unrelated screens होनी चाहिए
Show the answer

एक Activity Java में लिखी एक screen है; एक Layout XML में लिखी इसकी UI है

एक Activity एक Java class की तरह implement की गई एक अकेली screen है, और एक Layout उस screen की UI है XML में describe की गई (A)। Option B उन्हें swap कर देता है। Activity Java है, XML नहीं (C)। और एक Activity एक focused screen represent करती है, कई unrelated screens ठुँसी हुई नहीं (D)। साफ़ split, Java behaviour बनाम XML appearance, exactly वह है जो यह lesson establish करता है।

Watch out

Activity/Layout traps

1. setContentView भूलना: app चलती है पर screen खाली रहती है। हमेशा onCreate में एक layout attach कीजिए।

2. कौन सा कौन है मिला देना: Activity = Java (behaviour), Layout = XML (appearance)।

3. XML में logic डालना: XML सिर्फ़ UI describe करता है। Button clicks और data handling Java Activity में होते हैं (या एक onClick binding से), layout file के अंदर logic की तरह कभी नहीं।

Theory

अगला: पूरा project, और glue

आपने एक screen की दो files देख ली हैं। अगला lesson Android Studio में पूरा FestConnect project बनाता है, emulator पर 'Welcome' चलाता है, और बाकी components का tour करता है जो इसे एक app बनाते हैं, AndroidManifest.xml और auto-generated R.java सहित जो @+id/title को उस R.layout reference में बदलता है जो आपने अभी इस्तेमाल किया।

Summary

Key takeaways

  • एक Activity app की एक screen है, एक Java class की तरह लिखी गई (AppCompatActivity extend करती है)।
  • एक Layout उस screen की UI है, res/layout में XML में लिखी गई (containers + widgets)।
  • onCreate() Activity का entry point है; setContentView(R.layout.activity_main) layout attach करता है।
  • Appearance XML में रहता है, behaviour Java में: separation of concerns।
  • setContentView भूलना screen को खाली छोड़ देता है।
  • Memory hook: set (XML layout) और stage manager (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