Guruh talabasi Majidov Husanboyning mqudv


Android Studio-da ikkinchi Activity-ni ishga tushirish


Download 473.6 Kb.
bet5/6
Sana14.12.2020
Hajmi473.6 Kb.
#166422
1   2   3   4   5   6
Bog'liq
Android Studio 1-oraliq Nazorat

Android Studio-da ikkinchi Activity-ni ishga tushirish.


Boshlash uchun Android Studio-da yangi dastur yaratib, "Ilova" deb nomlang. Endi activity-ga xabar kiritish uchun matn maydoni va tugmani qo'shing. Buning uchun activity_main.xml fayliga quyidagi kodni kiriting:

xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal" >

    <EditText
        android:id="@+id/edit_message"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:hint="Xabarni kiriting" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Yuborish"/>
LinearLayout

Hozir tugmani bosish orqali qandat qilib yangi activity -ga o'tishni bilib olamiz.



Tugmaning bosish hodisasini qo'shish uchun activity_main.xml faylini oching va Button elementiga android: onClick atributini qo'shing:

<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:onClick="sendMessage"
    android:text="Yuborish"/>

android: onClick atributiga berilgan "sendMessage" qiymati bu foydalanuvchi tugmachani bosganda tizim chaqiradigan activity sinfida aniqlangan usul(metod)ning nomi. Keyinchalik, ushbu metodni aniqlaymiz.

Intent ob'ektini yaratish.


Keyin MainActivity sinfiga( fayliga) o'tamiz va ushbu sinfni quyidagicha o'zgartiramiz:

package com.example.android.ilova;

import androidx.appcompat.app.AppCompatActivity;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;

public class MainActivity extends AppCompatActivity {

    public final static String EXTRA_MESSAGE "EXTRA_MESSAGE";
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    // Tugmani bosish bilan ishlash metodi
    public void sendMessage(View view) {
        // tugmachani bosgandan so'ng amalga oshiriladigan harakatlar
        // Yangi Activity chaqirish uchun Intent ob'ekti yaratish
        Intent intent = new Intent(this, IkkinchiActivity.class);
        // Joriy Activity-da matn maydonini olish
        EditText editText = (EditText) findViewById(R.id.edit_message);
        // Berilgan matn maydoni(EditText)-ning matnini olish
        String message = editText.getText().toString();
        // putExtra yordamida ob'ektni qo'shish - birinchi parametr - bu kalit,
        // ikkinchi parametr - bu ob'ektning qiymati
        intent.putExtra(EXTRA_MESSAGE, message);
        // yangi activity-ni ochish(boshlash)
        startActivity(intent);
    }
}

 

Bu yerda tugmachani bosganda chaqiriladigan sendMessage () usuli qo'shiladi. Tugmachani bosish metodi parametr sifatida bosilgan tugmachani aks ettiruvchi View ob'ektini olishi kerak:



public void sendMessage(View view) {

 

Keyinchalik, ikkinchi activity -ni boshlash uchun Intent ob'ekti kerak. Intent ob'ekti bajarilishi kerak bo'lgan ba'zi bir dastur ishlarini boshqa dastur bajarishi uchun imkoniyat beradi yoki boshqa activity-ga o'tishga yordam beradi (masalan, activity -ni boshlash):



Intent intent = new Intent(this, IkkinchiActivity.class); 

Ushbu ob'ektning konstruktori ikkita parametrni oladi:



  • Birinchi parametr kontekstni ifodalaydi - Context ob'ekti (bu yerda this kalit so'zidan foydalaniladi, chunki MainActivity klassi Context sinfining subklassidir).

  • Ikkinchi parametr - bu yangi activity sinfi. Biz birozdan keyin yaratadigan IkkinchiActivity sinfi bo'ladi.

SendMessage () usuli ichida EditText elementini olish va uning matn qiymatini message ob'ektiga o'tkazish uchun findViewById usulidan foydalanamiz:

EditText editText = (EditText) findViewById(R.id.edit_message);
String message = editText.getText().toString();

 

Keyin matn maydoni(EditText)dan olingan matn ishga tushirilgan activity-ga uzatiladi:



intent.putExtra(EXTRA_MESSAGE, message);

 

"EXTRA_MESSAGE" parametri uzatilayotgan ma'lumotlarning kalitini bildiradi. Ya'ni, biz ko'plab ma'lumotlarni yangi activity-ga o'tkaza olamiz va ular chegaralanishi uchun ular uchun kalit belgilanadi. Bunday holda, EXTRA_MESSAGE kaliti odatdagi "EXTRA_MESSAGE" dir:



public final static String EXTRA_MESSAGE "EXTRA_MESSAGE";

Yangi activity -ni ochish uchun startActivity () usulini chaqirish va Intent - ni parametr sifatida o'tkazish kerak:



startActivity(intent);

Ushbu usulni chaqirgandan so'ng tizim Intent ob'ekti tomonidan aniqlangan yangi Activity ob'ektini ishga tushiradi.


Ikkinchi Activity ob'ektini yaratish.


Endi yangi activity - ning o'zi - IkkinchiActivity - ni qo'shaylik. Buning uchun MainActivity sinfini o'z ichiga olgan paketlar jildidagi project (app) -ga sichqonchani olib borib, sichqonchaning o'ng tugmasini bosing va keyin kontekst menyusidan New -> Activity -> Empty Activity - ni tanlang:



Keyin yangi activity yaratish uchun dialog oynasi ochiladi:



Activity nomini kiritib Finish  tugmasini bosing

Shunday qilib, biz yangi activity - ni yaratdik: app / java / com.example.android.ilova papkasiga yangi IkkinchiActivity klassi va app / res / layout papkasiga activity_ikkinchi.xml fayli qo'shildi.





IkkinchiActivity sinfini, ya'ni IkkinchiActivity.java faylini oching va uni quyidagicha o'zgartiring:

package com.example.android.ilova;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.widget.TextView;

public class IkkinchiActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // intent ob'ektidan ma'lumotlarni olish
        Intent intent = getIntent();
        String message = intent.getStringExtra(MainActivity.EXTRA_MESSAGE);

        // Matn maydoni, bu yerda TextView yaratish va sozlash
        TextView textView = new TextView(this);
        textView.setTextSize(40);
        textView.setText(message);

        // activity layoutda TextView-ni ko'rsatish
        setContentView(textView);
    }
}

 

MainActivity (va boshqa activity-lar) singari, joriy activity onCreate() usulida yaratiladi. Barcha Activity subklasslari onCreate usulini amalga oshirishi kerak, chunki tizim uni yangi activity yaratilganda chaqiradi. Aynan shu usulda yangi activity ob'ekti tartibi setContentView usuli yordamida o'rnatiladi va bu yerda komponentlarning dastlabki konfiguratsiyasi amalga oshiriladi.



Download 473.6 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling