Tuesday, March 9, 2021

Tìm hiểu Explicit Intents trong Android

Trong android, Explicit intents ý đồ rõ ràng ghi rõ tên của các thành phần được gọi bởi  Activity và chúng ta sử dụng Explicit intent để bắt đầu một thành phần trong ứng dụng của chúng ta. Ví dụ: chúng tôi có thể bắt đầu một hoạt động mới để đáp lại hành động của người dùng bằng cách sử dụng ý định rõ ràng.

Bằng cách sử dụng ý định rõ ràng, chúng tôi có thể gửi hoặc chia sẻ dữ liệu / nội dung từ hoạt động này sang hoạt động khác dựa trên yêu cầu của chúng tôi. Để tạo một Intent rõ ràng , chúng ta cần xác định tên thành phần cho một  đối tượng Intent .

Intent di = new Intent(this, ActivityView.class);

di.setData(Uri.parse("https://tienanhvn.blogspot.com/"));

startService(di);

Nếu bạn quan sát ý định rõ ràng ở trên, chúng tôi đã chỉ định ngữ cảnh ứng dụng và đối tượng tên lớp bên ngoài ( ActivityView ). Mục đích bắt đầu một cách rõ ràng lớp ActivityView trong ứng dụng.

Tạo ví dụ Explicit intent trong Android

Sau đây là ví dụ đầy đủ về việc thực hiện một ý định rõ ràng trong ứng dụng Android. Ở đây chúng tôi sẽ thực hiện phép cộng hai số trong một hoạt động và gửi thông tin đó đến một hoạt động khác để hiển thị kết quả.

Tìm hiểu Explicit Intents trong Android

Tạo một ứng dụng android mới bằng cách sử dụng android studio và mở tệp activity_main.xml từ \ src \ main \ res \ layout path. Trong trường hợp nếu bạn chưa biết cách tạo ứng dụng trong android studio, hãy xem bài viết này Ứng dụng Android Hello World .

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>

Bây giờ chúng ta sẽ tạo một tệp tài nguyên bố cục khác result.xml trong đường dẫn \ src \ main \ res \ layout để lấy thông tin chi tiết về hoạt động đầu tiên ( activity_main.xml ) trong tệp hoạt động thứ hai, nhấp chuột phải vào thư mục bố cục của bạn  à  Đi tới Mới  à  chọn Layout Resource File và đặt tên là result.xml .

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>

Bây giờ tạo một class 

MainActivity.java

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);

            }

        });

    }

}

Và tiếp tục tạo một activity khác

ResultActivity.java

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);

    }

}

Khai báo trong 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>

No comments:

Post a Comment