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ạ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