Implementing Android Intents and Content Providers
MainActivity.java
package com.example.lab4;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.provider.ContactsContract;
import android.view.View;
import android.widget.Button;
import androidx.appcompat.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity {
Button btnExplicit, btnImplicit, btnContacts;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Initialize buttons
btnExplicit = findViewById(R.id.button_open_explicit);
btnImplicit = findViewById(R.id.button_open_implicit);
btnContacts = findViewById(R.id.button_open_contacts);
// 1. Explicit Intent
btnExplicit.setOnClickListener(v -> {
Intent intent = new Intent(MainActivity.this, SecondActivity.class);
startActivity(intent);
});
// 2. Implicit Intent (Open Browser)
btnImplicit.setOnClickListener(v -> {
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse("https://www.google.com"));
startActivity(intent);
});
// 3. Content Provider (Open Contacts)
btnContacts.setOnClickListener(v -> {
Intent intent = new Intent(Intent.ACTION_PICK,
ContactsContract.CommonDataKinds.Phone.CONTENT_URI);
startActivity(intent);
});
}
}activity_main.xml
(Layout XML content goes here)
SecondActivity.java
package com.example.lab4;
import android.os.Bundle;
import androidx.appcompat.app.AppCompatActivity;
public class SecondActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second);
}
}activity_second.xml
(Layout XML content goes here)
AndroidManifest.xml
(Manifest configuration goes here)
