Inne działy

 

Android przełączanie aktywności i wysyłanie danych - Przykład

 

Może być sytuacja, kiedy chcesz wysłać dane z jednej aktywności do innej podczas przełączania z jednej aktywności do innej. Poniżej przedstawiono prosty przykład, gdzie można wpisać imię i nazwisko oraz wiek na pierwszym ekranie i otrzymać go na drugim ekranie po kliknięciu na przycisk.

 

Więc zacznijmy.

Projekt utworzono w AndroidStudio

1.      Utwórz nowy projekt File -> New Project… . Podczas tworzenia nowego projektu należy pozostawić domyślną nazwę aktywności MainActivity.java

2.     
Teraz trzeba utworzyć interfejs użytkownika dla MainActivity.java

3.     
W folderze layout powinien być plik o nazwie activity_main.xml.

4.     
Teraz należy wstawić następujący kod w pliku activity_main.xml w celu zaprojektowania układu. Ten układ zawiera dwie kontrolki EditText i przycisk (Button).

 

Plik activity_main.xml

 

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="Nazwisko: " />

    <EditText
        android:id="@+id/nazwisko"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_marginBottom="10dip" />

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="Wiek: " />

    <EditText
        android:id="@+id/wiek"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_marginBottom="10dip"
        android:inputType="number" />

    <Button
        android:id="@+id/btnInnyEkran"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="15dip"
        android:text="Wyślij dane" />

</LinearLayout>

Teraz otwórz plik MainActivity.javai wpisz następujący kod. W poniższym kodzie tworzymy nowy obiekt Intent i przekazujemy parametry po kliknięciu na przycisk.

 

package pl.uazz.nowaaktywnosc.app;

import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.Button;
import android.widget.EditText;
import android.view.View;
import android.content.Intent;
import android.util.Log;


public class MainActivity extends ActionBarActivity {

    //deklarowanie zmiennych
    EditText wprowadzNazwisko;
    EditText wprowadzWiek;



    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        //Przypisanie do zmiennych obiektów
        wprowadzNazwisko = (EditText)findViewById(R.id.nazwisko);
        wprowadzWiek = (EditText)findViewById(R.id.wiek);
        Button btnNowyEkran = (Button)findViewById(R.id.btnInnyEkran);

        //Włączenie nasłuchu dla zdarzeń
        btnNowyEkran.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                // Wywołanie nowej aktywności
                Intent nowyEkran = new Intent(getApplicationContext(), DrugaAktywnosc.class);

                //Wysyłanie danych do drugiej aktywności
                nowyEkran.putExtra("nazwisko",wprowadzNazwisko.getText().toString());
                nowyEkran.putExtra("wiek",wprowadzWiek.getText().toString());
                startActivity(nowyEkran);
            }
        });
    }


    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();
        if (id == R.id.action_settings) {
            return true;
        }
        return super.onOptionsItemSelected(item);
    }
}

Teraz utwórzmy klasę o nazwie DrugaAktywność.java oraz plik xml w katalogu layout o nazwie activity_druga.xml  

 

package pl.uazz.nowaaktywnosc.app;

import android.content.Intent;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;


public class DrugaAktywnosc extends ActionBarActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_druga);

        TextView txtNazwisko = (TextView)findViewById(R.id.txtNazwisko);
        TextView txtWiek = (TextView)findViewById(R.id.txtWiek);
        Button btnWroc = (Button)findViewById(R.id.btnPowrot);

        Intent i = getIntent();

        //Odbieranie danych
        String nazwisko = i.getStringExtra("nazwisko");
        String wiek = i.getStringExtra("wiek");

        Log.e("Drugi Ekran", nazwisko + "." + wiek );

        //Wyświetl odebrane dane
        txtNazwisko.setText(nazwisko);
        txtWiek.setText(wiek);

        //Włączenie nasłuchiwania dla zdarzeń
        btnWroc.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                // Zamykanie drugiej aktywności
                finish();
            }
        });

    }


    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.druga_aktywnosc, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();
        if (id == R.id.action_settings) {
            return true;
        }
        return super.onOptionsItemSelected(item);
    }
}

Kod pliku Activity_druga.xml

<?xml version="1.0" encoding="utf-8"?>

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

    <TextView
        android:id="@+id/txtNazwisko"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_margin="15dip"
        android:textSize="18dip" />

    <TextView
        android:id="@+id/txtWiek"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_margin="15dip"
        android:textSize="18dip" />

    <Button
        android:id="@+id/btnPowrot"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="15dip"
        android:text="Powrót" />

</LinearLayout>

 

Należy otworzyć plik AndroidManifest.xml i zmodyfikować kod w aplikacji jak poniżej

 

<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="pl.uazz.nowaaktywnosc.app" >

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="pl.uazz.nowaaktywnosc.app.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity
            android:name="pl.uazz.nowaaktywnosc.app.DrugaAktywnosc"
            android:label="@string/title_activity_druga_aktywnosc" >
        </activity>
    </application>

</manifest>

Kod pliku strings.xml z katalogu values

 

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <string name="app_name">NowaAktywnosc</string>
    <string name="action_settings">Settings</string>
    <string name="title_activity_druga_aktywnosc">DrugaAktywnosc</string>

</resources>

Teraz możesz uruchomić swój projekt klikając na zielonej strzałce na pasku narzędzi.

 

Zobacz nasze wszystkie kursy

WWW


HTML
HTML - Znaczniki
CSS - Tutorial
CSS - Selektory
PHP
JavaScript

XML

XSLT

Bazy danych


SQL
SQLite
MySQL
PostgreSQL

 

 

Programowanie


C
C++
C#
Java
VisualBasic
Python

Linux


Podstawy Linuxa
Bash
Linuks artykuły

Windows


Excel funkcje
Windows wskazówki
Outlook

Pozotałe działy


Programy
Rozrywka

 

 

 

This email address is being protected from spambots. You need JavaScript enabled to view it.