Mad P 6 7 8 9 10 11 12 13 15 16 17
Mad P 6 7 8 9 10 11 12 13 15 16 17
border.xml
import android.os.Bundle;
import androidx.appcompat.app.AppCompatActivity;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ListData[] myListData = new ListData[] {
new ListData("Jack", "NYC",R.drawable.i1),
new ListData("Hadley", "Washington DC",R.drawable.i2),
new ListData("Dudley", "Cape Town",R.drawable.i3),
new ListData("Tom", "Athens",R.drawable.i4),
new ListData("Ferdinand", "Barcelona",R.drawable.i5),
};
package com.example.mad_p_6;
public class ListData{
private String name;
private int image;
private String address;
public ListData(String name, String address, int image) {
this.name = name;
this.image = image;
this.address = address;
}
public String getName() {
return "Name: "+name;
}
public void setName(String name) {
this.name = name;
}
public int getImage() {
return image;
}
public void setImage(int image) {
this.image = image;
}
public String getAddress() {
return "Address: "+address;
}
public void setAddress(String address) {
this.address = address;
}
}
package com.example.mad_p_6;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.RelativeLayout;
import android.widget.TextView;
import android.widget.Toast;
import androidx.recyclerview.widget.RecyclerView;
import com.google.android.material.floatingactionbutton.FloatingActionButton;
// RecyclerView recyclerView;
public ListAdapter(ListData[] listdata) {
this.listdata = listdata;
}
}
});
activity_main.xml
grad.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="rectangle">
<gradient
android:startColor="@color/purple_200"
android:endColor="@color/teal_200"/>
</shape>
</item>
</selector>
buttonstyle.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="rectangle" >
<gradient android:angle="270"
android:centerColor="#1200FFFF"
android:endColor="#FF2003FF"
android:startColor="#F00FFFFF" />
<padding
android:bottom="8dp"
colors.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="purple_200">#FFBB86FC</color>
<color name="purple_500">#FF6200EE</color>
<color name="purple_700">#FF3700B3</color>
<color name="teal_200">#FF03DAC5</color>
<color name="teal_700">#FF018786</color>
<color name="black">#FF000000</color>
<color name="white">#FFFFFFFF</color>
</resources>
package com.example.mad_p_7;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
Output Screenshots:
package com.example.mad_p_8;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.widget.*;
import android.view.View;
import android.widget.Toast;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button submitButton = findViewById(R.id.submitbutton);
submitButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(MainActivity.this,"Button
clicked",Toast.LENGTH_LONG);
Log.d("","Button clicked");
EditText name = findViewById(R.id.namevalue);
EditText email = findViewById(R.id.emailvalue);
EditText contact = findViewById(R.id.contactvalue);
EditText city = findViewById(R.id.cityvalue);
DBHandler dbHandler = new DBHandler(MainActivity.this);
String nameValue = name.getText().toString();
String emailValue = email.getText().toString();
String contactValue = contact.getText().toString();
String cityValue = city.getText().toString();
dbHandler.newEntry(nameValue,emailValue,contactValue,cityValue);
Toast.makeText(MainActivity.this,"Data successfully
added",Toast.LENGTH_LONG);
}
});
}
public void addEntry(View view){
}
}
DBHandler.java
package com.example.mad_p_8;
import android.database.sqlite.*;
import android.content.*;
import android.util.Log;
@Override
public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {
sqLiteDatabase.execSQL("DROP TABLE IF EXISTS sampleTable");
Log.d("","TABLE DELETED");
onCreate(sqLiteDatabase);
}
Practical – 9
1. Use an AsyncTask to access remote database (make
a use of simple PhP Web service)
activity_main.xml
package com.example.mad_p_9;
//package com.example.practical9;
import androidx.appcompat.app.AppCompatActivity;
import android.app.ProgressDialog;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.AsyncTask;
import android.os.Bundle;
import android.util.Log;
import android.widget.Button;
import android.widget.ImageView;
import java.io.InputStream;
public class MainActivity extends AppCompatActivity {
private ImageView imageView;
String apiUrl =
"https://asset.swarovski.com/images/$size_1450/t_swa103/b_rgb:ffffff,c_scale,dp
r_3.0,f_auto,w_500/5379499_png/star-wars---darth-vader-swarovski-
5379499.png";
ProgressDialog progressDialog;
activity_main.xml
package com.example.mad_p_10;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.widget.TextView;
import java.util.List;
import java.util.Objects;
import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
import retrofit2.Retrofit;
import retrofit2.converter.gson.GsonConverterFactory;
public class MainActivity extends AppCompatActivity {
TextView textView;
String WEB_URL = "https://raw.githubusercontent.com/devp22/json/main/";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView = findViewById(R.id.textView);
Retrofit retrofit = new
Retrofit.Builder().baseUrl(WEB_URL).addConverterFactory(GsonConverterFact
ory.create()
).build();
getJSONData getData = retrofit.create(getJSONData.class);
Call<List<Model>> call = getData.getModels();
call.enqueue(new Callback<List<Model>>() {
@Override
public void onResponse(@NonNull Call<List<Model>> call, @NonNull
Response<List<Model>> response) {
List<Model> data = response.body();
for(int i = 0; i < data.size(); i++){
Model.java
package com.example.mad_p_10;
public class Model {
String NumberOfSongs, Name, Publisher;
public Model(String NumberOfSongs, String Publisher, String Name) {
this.Name = Name;
this.Publisher = Publisher;
this.NumberOfSongs = NumberOfSongs;
}
getJSONData.java
package com.example.mad_p_10;
import java.util.List;
import retrofit2.Call;
import retrofit2.http.GET;
a) Main Screen
activity_main.xml
package com.example.mad_p_11;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import com.google.firebase.database.DataSnapshot;
import com.google.firebase.database.DatabaseError;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import com.google.firebase.database.ValueEventListener;
activity_read_data.xml
}
public void readValues(View view){
EditText id = findViewById(R.id.id);
if(id.getText().toString()==null )
{
Toast.makeText(this,"Please enter missing
values",Toast.LENGTH_LONG).show();
}
else
{
@Override
public void onCancelled(@NonNull DatabaseError error) {
Log.d("ERROR","Error");
}
});
}
}
}
Output Screenshots:
activity_update_data.xml
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.EditText;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.TextView;
import android.widget.Toast;
import com.google.firebase.database.DataSnapshot;
import com.google.firebase.database.DatabaseError;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import com.google.firebase.database.ValueEventListener;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setTitle("Update Screen");
setContentView(R.layout.activity_update_data);
}
public void updateValue(View view){
EditText updateid = findViewById(R.id.updateid);
EditText newvalue = findViewById(R.id.updatevalue);
String newData = newvalue.getText().toString();
RadioGroup rg = findViewById(R.id.radiogroup);
RadioButton rb = findViewById(rg.getCheckedRadioButtonId());
if(updateid.getText().toString()==null )
{
Toast.makeText(this,"Please enter missing
databaseReference.child(idValue).child(rb.getText().toString()).setValue(newDat
a);
Toast.makeText(this,"Data updated
successfully",Toast.LENGTH_LONG).show();
}
}
}
Output Screenshots:
activity_insert_data.xml
activity_delete_data.xml
Practical – 12
1. Practical: BroadcastReceiver
activity_main.xml
package com.example.mad_p_12;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Bundle;
import android.view.View;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
protected void onStart() {
super.onStart();
IntentFilter filter = new
IntentFilter(Intent.ACTION_BATTERY_CHANGED);
registerReceiver(batteryChange, filter);
}
@Override
protected void onStop() {
super.onStop();
unregisterReceiver(batteryChange);
}
}
package com.example.mad_p_12;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.provider.Settings;
import android.widget.Toast;
if (true) {
Toast.makeText(context, "Battery changed",
Toast.LENGTH_SHORT).show();
} if(false) {
Toast.makeText(context, "Battery doesn't changed",
Toast.LENGTH_SHORT).show();
}
}
}
activity_main.xml
package com.example.mad_p_13;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.NotificationCompat;
import androidx.core.app.NotificationManagerCompat;
import android.app.NotificationChannel;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.os.Build;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
Toast.makeText(MainActivity.this,"Notified",Toast.LENGTH_LONG).show();
Log.d("","Notified");
}
}
activity_main.xml
package com.example.mad_p_15;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.speech.tts.TextToSpeech;
import android.view.View;
import android.widget.*;
import java.util.Locale;
EditText Text;
Button btnText;
TextToSpeech textToSpeech;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Text = findViewById(R.id.editTextTextPersonName2);
btnText = findViewById(R.id.button);
// Adding OnClickListener
btnText.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
textToSpeech.speak(Text.getText().toString(),TextToSpeech.QUEUE_FLUSH,nu
ll);
}
});
}
}
activity_main.xml
package com.example.mad_p_16;
import androidx.annotation.RequiresApi;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.ActivityCompat;
import android.Manifest;
import android.content.Context;
import android.content.pm.PackageManager;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Build;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.*;
import com.google.android.gms.location.FusedLocationProviderClient;
import com.google.android.gms.location.LocationServices;
import com.google.android.gms.tasks.CancellationToken;
import com.google.android.gms.tasks.OnSuccessListener;
LocationManager locationManager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
getLocationBtn = (Button)findViewById(R.id.button);
getLocationBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ActivityCompat.requestPermissions(MainActivity.this,new String[]
{Manifest.permission.ACCESS_FINE_LOCATION}, 1);
}
});
}
public void onRequestPermissionsResult(int requestCode, String permissions[],
int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
switch (requestCode) {
case 1: {
// If request is cancelled, the result arrays are empty.
if (grantResults.length > 0
&& grantResults[0] ==
PackageManager.PERMISSION_GRANTED) {
getLocation();
} else {
// permission denied, boo! Disable the
// functionality that depends on this permission.
}
return;
}
// other 'case' lines to check for other
// permissions this app might request
}
}
void getLocation() {
try {
locationManager = (LocationManager)
getApplicationContext().getSystemService(Context.LOCATION_SERVICE);
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,
}
}
activity_main.xml
<scale xmlns:android="http://schemas.android.com/apk/res/android"
android:fromXScale="0.5"
android:toXScale="2.0"
android:fromYScale="0.5"
android:toYScale="2.0"
android:duration="5000"
android:pivotX="50%"
android:pivotY="50%" >
</scale>
<scale xmlns:android="http://schemas.android.com/apk/res/android"
android:startOffset="5000"
android:fromXScale="2.0"
android:toXScale="0.5"
android:fromYScale="2.0"
android:toYScale="0.5"
android:duration="5000"
android:pivotX="50%"
android:pivotY="50%" >
</scale>
</set>
package com.example.mad_p_17;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.ImageView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}