Ví dụ về một Android Intent tường minh, gọi một Intent khác
Xem thêm các chuyên mục:

Là một website được viết trên công nghệ web Flutter vì vậy hỗ trợ rất tốt cho người học, kể cả những người học khó tính nhất.
Hiện tại website đang tiếp tục được cập nhập nội dung cho phong phú và đầy đủ hơn. Mong các bạn nghé thăm và ủng hộ website mới của chúng tôi.


Xem trước ví dụ:

Đây là mô hình ví dụ:

Tạo mới một "Empty Activity" project có tên ExplicitIntentExample:

- Name: ExplicitIntentExample
- Package name: org.o7planning.explicitintentexample

- main_activity.xml

Nếu bạn quan tâm tới các bước để thiết kế giao diện của ứng dụng này xin hãy xem phần phụ lục phía cuối của bài viết.
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<TextView
android:id="@+id/textView"
android:layout_width="0dp"
android:layout_height="27dp"
android:layout_marginStart="16dp"
android:layout_marginLeft="16dp"
android:layout_marginTop="26dp"
android:layout_marginEnd="16dp"
android:layout_marginRight="16dp"
android:text="Full Name:"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<EditText
android:id="@+id/editText_fullName"
android:layout_width="0dp"
android:layout_height="46dp"
android:layout_marginStart="16dp"
android:layout_marginLeft="16dp"
android:layout_marginTop="15dp"
android:layout_marginEnd="16dp"
android:layout_marginRight="16dp"
android:ems="10"
android:inputType="textPersonName"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textView" />
<Button
android:id="@+id/button_sendMessage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="28dp"
android:text="Send message to GreetingActivity"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/editText_fullName" />
<TextView
android:id="@+id/textView2"
android:layout_width="0dp"
android:layout_height="34dp"
android:layout_marginStart="16dp"
android:layout_marginLeft="16dp"
android:layout_marginTop="34dp"
android:layout_marginEnd="16dp"
android:layout_marginRight="16dp"
android:text="Feedback from GreetingActivity:"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/button_sendMessage" />
<TextView
android:id="@+id/textView_feedback"
android:layout_width="0dp"
android:layout_height="46dp"
android:layout_marginStart="16dp"
android:layout_marginLeft="16dp"
android:layout_marginTop="23dp"
android:layout_marginEnd="16dp"
android:layout_marginRight="16dp"
android:text="((Feedback))"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textView2" />
</androidx.constraintlayout.widget.ConstraintLayout>
Khi người dùng nhấn vào Button, chương trình sẽ gọi sang một Activity khác để hiển thị một lời chào. Bạn cần tạo một Activity khác với tên GreetingActivity.
- File > New > Activity > Empty Activity



- activity_greeting.xml

activity_greeting.xml
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".GreetingActivity">
<TextView
android:id="@+id/textView"
android:layout_width="0dp"
android:layout_height="29dp"
android:layout_marginStart="16dp"
android:layout_marginLeft="16dp"
android:layout_marginTop="27dp"
android:layout_marginEnd="16dp"
android:layout_marginRight="16dp"
android:text="Message sent from MainActivity:"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/textView_message"
android:layout_width="0dp"
android:layout_height="42dp"
android:layout_marginStart="16dp"
android:layout_marginLeft="16dp"
android:layout_marginTop="23dp"
android:layout_marginEnd="16dp"
android:layout_marginRight="16dp"
android:text="((Message))"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textView" />
<Button
android:id="@+id/button_back"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="63dp"
android:text="Back"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textView_message" />
</androidx.constraintlayout.widget.ConstraintLayout>
MainActivity.java
package org.o7planning.explicitintentexample;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
private EditText editTextFullName;
private TextView textFeedback;
private Button buttonSendMessage;
public static final int MY_REQUEST_CODE = 100;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
this.editTextFullName = (EditText)this.findViewById(R.id.editText_fullName);
this.textFeedback = (TextView)this.findViewById(R.id.textView_feedback);
this.buttonSendMessage = (Button)this.findViewById(R.id.button_sendMessage);
this.buttonSendMessage.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
sendMessage();
}
});
}
// When 'Greeting Activity' completed, it sends back a feedback.
// (If you have started it by startActivityForResult())
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == Activity.RESULT_OK && requestCode == MY_REQUEST_CODE) {
String feedback = data.getStringExtra("feedback");
this.textFeedback.setText(feedback);
} else {
this.textFeedback.setText("!?");
}
}
// The method is called when the user clicks on "Send Message to GreetingActivity" button.
public void sendMessage( ) {
String fullName= this.editTextFullName.getText().toString();
String message = "Hello, Please say hello me!";
Intent intent = new Intent(this,GreetingActivity.class);
intent.putExtra("fullName", fullName);
intent.putExtra("message", message);
// Start Activity and no need feedback.
// this.startActivity(intent);
// Start Activity and get feedback.
this.startActivityForResult(intent, MY_REQUEST_CODE);
}
}
GreetingActivity.java
package org.o7planning.explicitintentexample;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
public class GreetingActivity extends AppCompatActivity {
private TextView textViewMessage;
private Button buttonBack;
private String fullName;
private String message;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_greeting);
this.textViewMessage =(TextView) this.findViewById(R.id.textView_message);
this.buttonBack = (Button) this.findViewById(R.id.button_back);
this.buttonBack.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
goBack();
}
});
// Intent is passed into
Intent intent = this.getIntent();
this.fullName = intent.getStringExtra("fullName");
this.message = intent.getStringExtra("message");
this.textViewMessage.setText(this.message );
}
// When completed this Activity, send feedback to the caller.
@Override
public void finish() {
// Prepare data intent
Intent data = new Intent();
String feedback = "OK, Hello " + this.fullName + ". How are you?";
data.putExtra("feedback", feedback);
// Activity finished ok, return the data
this.setResult(Activity.RESULT_OK, data);
super.finish();
}
// The method is called when the user clicks the "Back" button.
public void goBack() {
// Calling onBackPressed() method to back to the previous Activity.
this.onBackPressed();
}
}
Chạy ứng dụng:



Sét đặt ID, Text cho các thành phần trên giao diện:



Sét đặt ID, Text cho các thành phần trên giao diện:
