CĂN BẢN
INTENTS
GIAO DIỆN
CÁC KHÁI NIỆM
VÍ DỤ
TÀI LIỆU
HỌC LẬP TRÌNH ANDROID
CÁC CHỦ ĐỀ
BÀI MỚI NHẤT
MỚI CẬP NHẬT

Explicit Intents trong Android

Trong bài này chúng ta sẽ tìm hiểu một loại Intent mới trong Android đó là Explicit Intent. Công dụng của Explicit Intent là giúp gửi thông tin giữa các Activity.

test php

banquyen png
Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

Explicit intent trong Android còn được gọi là Intent tường minh vì nó chỉ rõ component sẽ nhận và xử lý. Thông thường những intent này sẽ không cần gán bổ sung thêm các thuộc tính khác như action, data.

1. Explicit Intent trong Android là gì?

Trong Android, Explicit intents xác định rõ ràng tên của component sẽ được gọi bởi activity. Explicit intent thường được sử dụng để khởi chạy các component trong cùng một ứng dụng.

Ví dụ: bằng cách sử dụng explicit intent, chúng ta có thể khởi chạy một activity mới để đáp lại hành động của người dùng.

Bài viết này được đăng tại [free tuts .net]

Bằng cách sử dụng explicit intent, ta có thể gửi hoặc chia sẻ dữ liệu / nội dung từ activity này sang activity khác. Để tạo một Explicit Intent, chúng ta cần xác định tên component cho Intent.

Sau đây là đoạn code minh họa về explicit intent trong ứng dụng Android.

Intent di = new Intent(this, ActivityView.class);
di.setData(Uri.parse("http://www.tutlane.com"));
startService(di);

Theo ví dụ trên, chúng ta xác định context (this) và external ( ActivityView.class), sau đó intent sẽ khởi chạy lớp ActivityView trong ứng dụng.

2. Ví dụ về Explicit Intent trong Android

Sau đây chúng ta sẽ đi vào ví dụ về một Explicit Intent trong ứng dụng Android để các bạn hiểu rõ hơn về loại Intent này. Ở đây chúng ta sẽ thực hiện phép cộng hai số trong activity và gửi kết quả đến activity khác để hiển thị.

Tạo một ứng dụng Android mới và mở file activity_main.xml từ đường dẫn \ src \ main \ res \ layout.

activity_main.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/fstTxt"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="100dp"
        android:layout_marginTop="150dp"
        android:text="First Number"
         />
    <EditText
        android:id="@+id/firstNum"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="100dp"
        android:ems="10">
    </EditText>
    <TextView
        android:id="@+id/secTxt"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Second Number"
        android:layout_marginLeft="100dp"
         />
    <EditText
        android:id="@+id/secondNum"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="100dp"
        android:ems="10" />
    <Button
        android:id="@+id/addBtn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="100dp"
        android:text="Add" />
</LinearLayout>

Tiếp theo, ta tạo một layout resource file result.xml trong đường dẫn \ src \ main \ res \ layout để lấy kết quả cộng trong activity đầu (activity_main.xml) bằng cách kích chuột phải vào thư mục ứng dụng -> New -> Layout Resource File và đặt tên là result.xml.

Khi tạo xong, mở và viết code như như dưới đây

result.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:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/resultView"
    android:layout_marginLeft="100dp"
    android:layout_marginTop="150dp"/>
</LinearLayout>

Tiếp theo, mở file MainActivity.java từ đường dẫn \ src \ main \ java \ com.tutlane.intents và viết code như dưới đây

MainActivity.java

package com.tutlane.intents;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        final EditText firstNum = (EditText)findViewById(R.id.firstNum);
        final EditText secNum = (EditText)findViewById(R.id.secondNum);
        Button btnAdd = (Button)findViewById(R.id.addBtn);
        btnAdd.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                int num1 = Integer.parseInt(firstNum.getText().toString());
                int num2 = Integer.parseInt(secNum.getText().toString());
                Intent intent = new Intent(MainActivity.this,ResultActivity.class);
                intent.putExtra("SUM",num1+" + "+num2+" = "+(num1+num2));
                startActivity(intent);
            }
        });
    }
}

Ta sẽ tạo thêm một file activity khác tên là ResultActivity.java trong đường dẫn \ src \ main \ java \ com.tutlane.intents để lấy kết quả cộng của activity đầu tiên ( MainActivity.java ) bằng cách cho kích chuột phải vào thư mục ứng dụng -> New -> Java Class và đặt tên là ResultActivity.java.

Sau đó, viết code như dưới đây vào file ResultActivity.java

ResultActivity.java

package com.tutlane.intents;

import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.widget.TextView;

/**
 * Created by surdasari on 27-07-2017.
 */

public class ResultActivity  extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.result);
        TextView result = (TextView)findViewById(R.id.resultView);
        Intent intent = getIntent();
        String addition = (String)intent.getSerializableExtra("SUM");
        result.setText(addition);
    }
}

Tiếp theo, cần thêm activity mới được tạo này vào file ActivityManifest.xml bằng cách nhập code sau vào file

ActivityMainfest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.tutlane.intents">
    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="Explicit Intent - Activity1"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name=".ResultActivity" android:label="Explicit Intent - Activity2">
        </activity>
    </application>
</manifest>

Ở phía trên đây là chúng ta đang thực hiện phép tính cộng trong một activity ( MainActivity.java ) và gửi thông tin kết quả đó đến một activity khác ( ResultActivity.java ) và thêm tất cả các activity vào file AndroidManifest.xml .

3. Kết quả của ví dụ về Explicit Intent trong Android

Khi chạy ví dụ trên trong trình giả lập Android, ta sẽ nhận được kết quả như hiển thị bên dưới

android explict intents example result gif

Đây là cách sử dụng Explicit Intent để gửi thông tin từ activity này sang activity khác trong ứng dụng Android.

Cùng chuyên mục:

Tìm hiểu về vòng đời của Activity trong Android

Tìm hiểu về vòng đời của Activity trong Android

AlarmManager trong Android

AlarmManager trong Android

Menu trong Android

Menu trong Android

Fragments trong Android

Fragments trong Android

SearchView trong Android

SearchView trong Android

TabLayout trong Android

TabLayout trong Android

ViewStub trong Android

ViewStub trong Android

Image Slider trong Android

Image Slider trong Android

Trình chuyển đổi hình ảnh (Image Switcher) trong Android

Trình chuyển đổi hình ảnh (Image Switcher) trong Android

ScrollView trong Android

ScrollView trong Android

ProgressBar trong Android

ProgressBar trong Android

Đồng hồ Analog và đồng hồ kỹ thuật số trong Android

Đồng hồ Analog và đồng hồ kỹ thuật số trong Android

Cách dùng TimePicker trong Android

Cách dùng TimePicker trong Android

Cách dùng DatePicker trong Android

Cách dùng DatePicker trong Android

Cách dùng SeekBar trong Android

Cách dùng SeekBar trong Android

Cách dùng WebView trong Android

Cách dùng WebView trong Android

Cách dùng RatingBar trong Android

Cách dùng RatingBar trong Android

Cách dùng ListView trong Android

Cách dùng ListView trong Android

AutoCompleteTextView trong Android

AutoCompleteTextView trong Android

Spinner trong Android

Spinner trong Android

Top