# Part A Questions With Solutions **2.Create an Android Application to demonstrate change of background color using Radio Buttons.** ```package com.example.myapplication; import androidx.appcompat.app.AppCompatActivity; import android.graphics.Color; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.LinearLayout; import android.widget.RadioGroup; import java.util.Random; public class MainActivity extends AppCompatActivity { RadioGroup b; LinearLayout l; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); b=findViewById(R.id.r); l=findViewById(R.id.main); b.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { @Override public void onCheckedChanged(RadioGroup group, int checkedId) { if (checkedId==R.id.blue){ l.setBackgroundColor(Color.BLUE); } else if (checkedId==R.id.red) { l.setBackgroundColor(Color.RED); }else{ l.setBackgroundColor(Color.GREEN); } } }); } } ``` # **3.Create an Android Application to demonstrate choosing of food items and cost computation using Check Box.** ```package com.example.myapplication; import androidx.appcompat.app.AppCompatActivity; import android.graphics.Color; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.CheckBox; import android.widget.LinearLayout; import android.widget.RadioGroup; import android.widget.Toast; import java.util.Random; public class MainActivity extends AppCompatActivity { Button t; CheckBox b,p,s; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); t=findViewById(R.id.btn); b=findViewById(R.id.b); p = findViewById(R.id.p); s=findViewById(R.id.s); t.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String li=""; int amt=0; if(b.isChecked()){ li=li+b.getText().toString()+"\n"; amt+=100; } if (p.isChecked()) { li=li+p.getText().toString()+"\n"; amt+=100; } if (s.isChecked()){ li=li+s.getText().toString()+"\n"; amt+=100; } Toast.makeText(MainActivity.this ,li+amt,Toast.LENGTH_LONG).show(); } }); } } ``` # **4.Create an Android Application to add and delete items from ListView dynamically.** - An ArrayAdapter in Android is a type of adapter used to bind data from an ArrayList (or other data sources) to a UI component such as a ListView or Spinner. It acts as a bridge between the data source and the UI, allowing the data to be displayed and managed easily. ```package com.example.myapplication; import androidx.activity.EdgeToEdge; import androidx.appcompat.app.AppCompatActivity; import android.graphics.Color; import android.os.Bundle; import android.view.View; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.Button; import android.widget.CheckBox; import android.widget.EditText; import android.widget.LinearLayout; import android.widget.ListView; import android.widget.RadioGroup; import android.widget.Toast; import java.util.ArrayList; import java.util.Random; public class MainActivity extends AppCompatActivity { Button t; ListView l; EditText e; ArrayList<String>arr= new ArrayList<String>(); ArrayAdapter<String>adp; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); EdgeToEdge.enable(this); setContentView(R.layout.activity_main); t=findViewById(R.id.b); e=findViewById(R.id.e); l = findViewById(R.id.l); arr.add("mango"); arr.add("Orange"); adp=new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_list_item_1,arr); l.setAdapter(adp); t.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String s=e.getText().toString(); arr.add(s); adp.notifyDataSetChanged(); } }); l.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() { @Override public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) { arr.remove(position); adp.notifyDataSetChanged(); return false; } }); } } ``` # **5.Simple Calulater** ```package com.example.myapplication; import androidx.activity.EdgeToEdge; import androidx.appcompat.app.AppCompatActivity; import android.graphics.Color; import android.os.Bundle; import android.view.View; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.Button; import android.widget.CheckBox; import android.widget.EditText; import android.widget.LinearLayout; import android.widget.ListView; import android.widget.RadioGroup; import android.widget.TextView; import android.widget.Toast; import java.util.ArrayList; import java.util.Random; public class MainActivity extends AppCompatActivity { Button a,m,d,s ; TextView r; EditText e1 ,e2; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); EdgeToEdge.enable(this); setContentView(R.layout.activity_main); e1=findViewById(R.id.etNumber1); e2=findViewById(R.id.etNumber2); a = findViewById(R.id.btnAdd); m = findViewById(R.id.btnMultiply); d = findViewById(R.id.btnDivide); s = findViewById(R.id.btnSubtract); r=findViewById(R.id.tvResult); a.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { int num1= Integer.parseInt(e1.getText().toString()); int num2 = Integer.parseInt(e2.getText().toString()); int result = num1 + num2; r.setText(String.valueOf(result)); } }); //add all other buttons Listener } } ``` ```<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:padding="16dp" android:paddingTop="50dp"> <!-- Input Fields --> <EditText android:id="@+id/etNumber1" android:layout_width="match_parent" android:layout_height="50dp" android:hint="Enter first number" android:inputType="numberDecimal" /> <EditText android:id="@+id/etNumber2" android:layout_width="match_parent" android:layout_height="50dp" android:hint="Enter second number" android:inputType="numberDecimal" /> <!-- Buttons for Operations --> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:gravity="center"> <Button android:id="@+id/btnAdd" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Add" /> <Button android:id="@+id/btnSubtract" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Subtract" android:layout_marginStart="8dp" /> <Button android:id="@+id/btnMultiply" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Multiply" android:layout_marginStart="8dp" /> <Button android:id="@+id/btnDivide" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Divide" android:layout_marginStart="8dp" /> </LinearLayout> <!-- Result Display --> <TextView android:id="@+id/tvResult" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Result: " android:textSize="18sp" android:paddingTop="16dp" android:gravity="center" /> </LinearLayout> ``` # **6.Create an Android Application to send SMS.** ==Settings->apps->permisions->sms->allow== ```<uses-feature android:name="android.hardware.telephony" android:required="false" /> <uses-permission android:name="android.permission.SEND_SMS"/> ``` ```package com.example.myapplication; import androidx.activity.EdgeToEdge; import androidx.appcompat.app.AppCompatActivity; import android.graphics.Color; import android.os.Bundle; import android.telephony.SmsManager; import android.view.View; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.Button; import android.widget.CheckBox; import android.widget.EditText; import android.widget.LinearLayout; import android.widget.ListView; import android.widget.RadioGroup; import android.widget.TextView; import android.widget.Toast; import java.util.ArrayList; import java.util.Random; public class MainActivity extends AppCompatActivity { Button s; EditText m ,p; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); EdgeToEdge.enable(this); setContentView(R.layout.activity_main); m=findViewById(R.id.msg); p=findViewById(R.id.phn); s = findViewById(R.id.send); s.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String ph=p.getText().toString(); String msg=m.getText().toString(); SmsManager smsManager =SmsManager.getDefault(); smsManager.sendTextMessage(ph,null,msg,null,null); Toast.makeText(MainActivity.this,"SMS Sent",Toast.LENGTH_LONG).show(); } }); } } ``` # **7.Create an Android Application to read the battery percentage from cellphone and change background color based on level using Broadcast Receiver.** ```package com.example.myapplication; import androidx.activity.EdgeToEdge; import androidx.appcompat.app.AppCompatActivity; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.graphics.Color; import android.os.Bundle; import android.telephony.SmsManager; import android.view.View; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.Button; import android.widget.CheckBox; import android.widget.EditText; import android.widget.LinearLayout; import android.widget.ListView; import android.widget.RadioGroup; import android.widget.TextView; import android.widget.Toast; import java.util.ArrayList; import java.util.Random; public class MainActivity extends AppCompatActivity { LinearLayout c1; TextView t; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); EdgeToEdge.enable(this); setContentView(R.layout.activity_main); c1=findViewById(R.id.main); t=findViewById(R.id.t); bat_b b = new bat_b(); registerReceiver(b,new IntentFilter(Intent.ACTION_BATTERY_CHANGED)); } class bat_b extends BroadcastReceiver{ @Override public void onReceive(Context context, Intent intent) { int per=intent.getIntExtra("level",0); if (per > 60) { c1.setBackgroundColor(Color.GREEN); } else if (per >= 0 && per <= 20) { c1.setBackgroundColor(Color.RED); } else { c1.setBackgroundColor(Color.YELLOW); } } } } ``` Q: What is BroadcastReceiver in Android? A: It is a component that listens for system-wide or application-specific broadcast messages. Q: What does Intent.ACTION_BATTERY_CHANGED do? A: It is a system broadcast that provides information about the current battery state. Q: How do you register a BroadcastReceiver in your app? A: By using registerReceiver method with an IntentFilter for the desired action. Q: What does getIntExtra("level", 0) in onReceive do? A: It retrieves the battery level from the Intent. Q: Why do we use registerReceiver instead of declaring the receiver in the manifest? A: ACTION_BATTERY_CHANGED is a sticky broadcast and is only available when registered programmatically. Q: What is the role of EdgeToEdge.enable(this) in this code? A: It enables edge-to-edge display for the activity, providing a modern UI look. Q: What is the default value provided in getIntExtra and why? A: 0 is the default value to avoid null or incorrect data when the level key is not present. Q: What happens if the BroadcastReceiver is not unregistered? A: It can cause memory leaks as the system will still try to send broadcasts to the receiver. Q: Can BroadcastReceiver run on the main thread? A: Yes, onReceive runs on the main thread, so heavy operations should be avoided. Q: Why use Color.GREEN, Color.RED, and Color.YELLOW? A: To visually indicate different battery levels. Q: What is the purpose of setContentView in onCreate? A: It sets the layout resource for the activity. Q: Can BroadcastReceiver be used for custom broadcasts? A: Yes, using sendBroadcast to send custom intents. - What is an Intent in Android?: Definition: An Intent is a messaging object used in Android to request an action from another app component. It facilitates communication between components such as activities, services, and broadcast receivers. # **8.Create an Android Application to change image in Image View on Button Click** ```package com.example.myapplication; import androidx.activity.EdgeToEdge; import androidx.annotation.Nullable; import androidx.appcompat.app.AppCompatActivity; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.graphics.Bitmap; import android.graphics.Color; import android.os.Bundle; import android.provider.MediaStore; import android.telephony.SmsManager; import android.view.View; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.Button; import android.widget.CheckBox; import android.widget.EditText; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.ListView; import android.widget.RadioGroup; import android.widget.TextView; import android.widget.Toast; import java.util.ArrayList; import java.util.Random; public class MainActivity extends AppCompatActivity { ImageView i; Button b; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); EdgeToEdge.enable(this); setContentView(R.layout.activity_main); i=findViewById(R.id.imageView); b=findViewById(R.id.button4); b.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent i =new Intent(MediaStore.ACTION_IMAGE_CAPTURE_SECURE); startActivityForResult(i,1); } }); } @Override protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { super.onActivityResult(requestCode, resultCode, data); if (resultCode == RESULT_OK && requestCode == 1){ Bitmap t=(Bitmap)data.getExtras().get("data"); i.setImageBitmap(t); } } } ``` - Bitmap: Represents an image in memory that you can manipulate or display in your app. - Intent: A messaging object used to request actions from other components (like capturing an image using the camera in this case). - startActivityForResult(): Starts an activity (camera app here) and expects a result to be returned later. - getExtras(): Retrieves additional data passed with the Intent, which in this case contains the captured image. # **9.Create an Android Application to capture video using Camera and illustrate playback.** ```package com.example.myapplication; import androidx.activity.EdgeToEdge; import androidx.annotation.Nullable; import androidx.appcompat.app.AppCompatActivity; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.graphics.Bitmap; import android.graphics.Color; import android.net.Uri; import android.os.Bundle; import android.provider.MediaStore; import android.telephony.SmsManager; import android.view.View; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.Button; import android.widget.CheckBox; import android.widget.EditText; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.ListView; import android.widget.RadioGroup; import android.widget.TextView; import android.widget.Toast; import android.widget.VideoView; import java.util.ArrayList; import java.util.Random; public class MainActivity extends AppCompatActivity { VideoView v; Button b; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); EdgeToEdge.enable(this); setContentView(R.layout.activity_main); v=findViewById(R.id.videoView); b=findViewById(R.id.button4); b.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent i =new Intent(MediaStore.ACTION_VIDEO_CAPTURE); startActivityForResult(i,1); } }); } @Override protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { super.onActivityResult(requestCode, resultCode, data); if (resultCode == RESULT_OK && requestCode == 1){ Uri u = data.getData(); v.setVideoURI(u); v.start(); } } } ``` ```Uri u = data.getData();``` - data.getData() is used to retrieve the Uri of the video file selected by the user. This - Uri: A URI (Uniform Resource Identifier) is used to identify and access a resource, like a video file, on the system. - VideoView: A UI element in Android used to display and play videos. # **10.Create an Android Application to demonstrate the following Android Animations. i) Rotate ii) Fade** ```package com.example.myapplication; import androidx.activity.EdgeToEdge; import androidx.annotation.Nullable; import androidx.appcompat.app.AppCompatActivity; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.graphics.Bitmap; import android.graphics.Color; import android.net.Uri; import android.os.Bundle; import android.provider.MediaStore; import android.telephony.SmsManager; import android.view.View; import android.view.animation.Animation; import android.view.animation.AnimationUtils; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.Button; import android.widget.CheckBox; import android.widget.EditText; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.ListView; import android.widget.RadioGroup; import android.widget.TextView; import android.widget.Toast; import android.widget.VideoView; import java.util.ArrayList; import java.util.Random; public class MainActivity extends AppCompatActivity { ImageView i ; Button r , f; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); EdgeToEdge.enable(this); setContentView(R.layout.activity_main); i=findViewById(R.id.imageView3); r=findViewById(R.id.button4); f=findViewById(R.id.button5); r.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Animation a = AnimationUtils.loadAnimation(MainActivity.this,R.anim.rotate); i.startAnimation(a); } }); f.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Animation a = AnimationUtils.loadAnimation(MainActivity.this,R.anim.fade); i.startAnimation(a); } }); } } ``` ==rotate.xml== ```<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android"> <rotate android:fromDegrees="0" android:toDegrees="360" android:pivotX="50%" android:pivotY="50%" android:duration="1000"/> </set> ``` ==fade.xml== ```<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android"> <alpha android:toAlpha="0" android:fromAlpha="1" android:duration="1000"/> </set> ``` # **11.Gyroscope and accelerometer** ```package com.example.myapplication; import androidx.activity.EdgeToEdge; import androidx.annotation.Nullable; import androidx.appcompat.app.AppCompatActivity; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.graphics.Bitmap; import android.graphics.Color; import android.hardware.Sensor; import android.hardware.SensorEvent; import android.hardware.SensorEventListener; import android.hardware.SensorManager; import android.net.Uri; import android.os.Bundle; import android.provider.MediaStore; import android.telephony.SmsManager; import android.view.View; import android.view.animation.Animation; import android.view.animation.AnimationUtils; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.Button; import android.widget.CheckBox; import android.widget.EditText; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.ListView; import android.widget.RadioGroup; import android.widget.TextView; import android.widget.Toast; import android.widget.VideoView; import java.util.ArrayList; import java.util.Random; public class MainActivity extends AppCompatActivity { TextView x,y,z ; Sensor s; SensorManager sm; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); EdgeToEdge.enable(this); setContentView(R.layout.activity_main); x=findViewById(R.id.textView); y=findViewById(R.id.textView1); z=findViewById(R.id.textView2); sm=(SensorManager)getSystemService(SENSOR_SERVICE) ; s=sm.getDefaultSensor(Sensor.TYPE_GYROSCOPE); if(s==null){ Toast.makeText(this,"Suported",Toast.LENGTH_LONG).show(); finish(); } sm.registerListener(new SensorEventListener() { @Override public void onSensorChanged(SensorEvent event) { float xval=event.values[0]; float yval=event.values[1]; float zval=event.values[2]; x.setText(xval+""); y.setText(yval+""); z.setText(zval+""); } @Override public void onAccuracyChanged(Sensor sensor, int accuracy) { } },s,SensorManager.SENSOR_DELAY_NORMAL); } } ``` ```<?xml version="1.0" encoding="utf-8"?> <LinearLayout 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" android:orientation="vertical" android:padding="16dp" android:paddingTop="50dp" android:id="@+id/main"> <TextView android:id="@+id/textView" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="TextView" /> <TextView android:id="@+id/textView1" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="TextView" /> <TextView android:id="@+id/textView2" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="TextView" /> </LinearLayout> ``` # # PART-B QUESTIONS **Sql** ```package com.example.myapplication; public class MainActivity extends AppCompatActivity { EditText name,usn,age ; Button insert,select; Dbhelper db; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); EdgeToEdge.enable(this); setContentView(R.layout.activity_main); db=new Dbhelper(this); name=findViewById(R.id.name); age=findViewById(R.id.age); usn=findViewById(R.id.usn); insert=findViewById(R.id.i); select=findViewById(R.id.s); insert.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String nm =name.getText().toString(); String us = usn.getText().toString(); int a = Integer.parseInt(age.getText().toString()) ; boolean res=db.InserData(nm,us,a); if(res){ Toast.makeText(MainActivity.this,"Inserted",Toast.LENGTH_LONG).show(); }else{ Toast.makeText(MainActivity.this,"Not Inserted",Toast.LENGTH_LONG).show(); } } }); select.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String uss = usn.getText().toString(); Cursor c = db.SelectData(uss); if(c.getCount()==0){ Toast.makeText(MainActivity.this,"No Data",Toast.LENGTH_LONG).show(); }else{ c.moveToFirst(); String n1=c.getString(0); String n2=c.getString(1); int a=c.getInt(2); String data = "Name:"+n1+"\nUsn:"+n2+"\nage"+a; Toast.makeText(MainActivity.this,data,Toast.LENGTH_LONG).show(); } } }); } } ``` ```package com.example.myapplication; import android.content.ContentValues; import android.content.Context; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; public class Dbhelper extends SQLiteOpenHelper { public Dbhelper( Context context) { super(context, "User1.db",null,1); } @Override public void onCreate(SQLiteDatabase db) { db.execSQL("CREATE TABLE Student(name TEXT,usn TEXT primary key,age INTEGER)"); } public boolean InserData(String name ,String usn,int age){ SQLiteDatabase db=getWritableDatabase(); ContentValues cv =new ContentValues(); cv.put("name",name); cv.put("usn",usn); cv.put("age",age); long res = db.insert("Student",null,cv); db.close(); return res!=1; } public Cursor SelectData(String u){ SQLiteDatabase db = getWritableDatabase(); Cursor c=db.rawQuery("select * from Student where usn=?",new String[]{u}); return c; } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { db.execSQL("DROP TABLE IF EXISTS Student"); onCreate(db); } } ``` # **Create an Android Application to demonstrate communication between two activities using Explicit Intents.** ==main== ```public class MainActivity extends AppCompatActivity { EditText m ; Button s; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); EdgeToEdge.enable(this); setContentView(R.layout.activity_main); m=findViewById(R.id.m); s=findViewById(R.id.s); s.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String s = m.getText().toString(); Intent i = new Intent(MainActivity.this ,MainActivity2.class); i.putExtra("Msg",s); startActivityForResult(i,1); } }); } @Override protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { super.onActivityResult(requestCode, resultCode, data); if(resultCode==RESULT_OK){ String s = data.getStringExtra("Ack"); Toast.makeText(MainActivity.this,s,Toast.LENGTH_LONG).show(); } } } ``` ==main2== ```package com.example.myapplication; import androidx.activity.EdgeToEdge; import androidx.appcompat.app.AppCompatActivity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.TextView; public class MainActivity2 extends AppCompatActivity { TextView t; Button b; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); EdgeToEdge.enable(this); setContentView(R.layout.activity_main2); t=findViewById(R.id.textView); b=findViewById(R.id.btn); Intent i = getIntent(); String s = i.getStringExtra("Msg"); t.setText(s); b.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent i = new Intent(); i.putExtra("Ack","Recived"); setResult(RESULT_OK,i); finish(); } }); } } ``` # **Create an Android Application to demonstrate implicit intents for Call, Maps and browser activity.** ```package com.example.myapplication; public class MainActivity extends AppCompatActivity { EditText e1, e2, e3; Button b1, b2, b3, b4; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); EdgeToEdge.enable(this); setContentView(R.layout.activity_main); e1 = findViewById(R.id.pe); e2 = findViewById(R.id.me); e3 = findViewById(R.id.be); b1 = findViewById(R.id.pb); b2 = findViewById(R.id.mb); b3 = findViewById(R.id.bb); b1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String s = e1.getText().toString(); Intent call = new Intent(Intent.ACTION_VIEW,Uri.parse("tel:"+s)); startActivity(call); } }); b2.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String m= e2.getText().toString(); Intent map = new Intent(Intent.ACTION_VIEW,Uri.parse("google.navigation:q="+m)); startActivity(map); } }); b3.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String url =e3.getText().toString(); url="http://"+url; Intent brw = new Intent(Intent.ACTION_VIEW,Uri.parse(url)); startActivity(brw); } }); } } ``` # h1 **option/contextMenu** ```public class MainActivity extends AppCompatActivity { EditText e1, e2 ; TextView t; Button b1; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); EdgeToEdge.enable(this); setContentView(R.layout.activity_main); e1 = findViewById(R.id.e1); e2 = findViewById(R.id.e2); t=findViewById(R.id.t); b1 = findViewById(R.id.b1); registerForContextMenu(b1); } @Override public boolean onCreateOptionsMenu(Menu menu) { menu.add(1,101,1,"ADD"); menu.add(1,102,2,"SUB"); menu.add(1,103,3,"ADD"); menu.add(1,104,4,"ADD"); return super.onCreateOptionsMenu(menu); } @Override public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) { super.onCreateContextMenu(menu, v, menuInfo); menu.add(1,101,1,"ADD"); menu.add(1,102,2,"SUB"); menu.add(1,103,3,"ADD"); menu.add(1,104,4,"ADD"); } @Override public boolean onOptionsItemSelected(@NonNull MenuItem item) { double f = Double.parseDouble(e1.getText().toString()); double s =Double.parseDouble(e2.getText().toString()); switch(item.getItemId()){ case 101:t.setText(String.valueOf(f+s)); return true; case 102:t.setText(String.valueOf(f-s)); return true; case 103:t.setText(String.valueOf(f*s)); return true; case 104: if (s != 0) t.setText(String.valueOf(f / s)); else Toast.makeText(MainActivity.this, "Divide by zer0", Toast.LENGTH_LONG).show(); return true; default: return super.onContextItemSelected(item); } } @Override public boolean onContextItemSelected(@NonNull MenuItem item) { double f = Double.parseDouble(e1.getText().toString()); double s =Double.parseDouble(e2.getText().toString()); switch(item.getItemId()){ case 101:t.setText(String.valueOf(f+s)); return true; case 102:t.setText(String.valueOf(f-s)); return true; case 103:t.setText(String.valueOf(f*s)); return true; case 104: if (s != 0) t.setText(String.valueOf(f / s)); else Toast.makeText(MainActivity.this, "Divide by zer0", Toast.LENGTH_LONG).show(); return true; default: return super.onContextItemSelected(item); } } } ```