Académique Documents
Professionnel Documents
Culture Documents
Mobile
TP3:
Annuaire professionnel
Khawla DAROUICH
GLSID2
SOMMAIRE
Application
Page d’accueil
Ajout
Modification
P A G E 0 3 | 2020 - 2021
GESTION DES EVENEMENTS
Suppression
Annuler la suppression
Confirmer la suppression
Recherche
P A G E 0 4 | 2020 - 2021
CODE SOURCE
Code Source
Main Activity
package com.example.annuaireprofessionnel;
import android.content.Intent;
import android.os.Bundle;
import com.google.android.material.floatingactionbutton.FloatingActionButton;
import com.google.android.material.snackbar.Snackbar;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.SearchView;
import androidx.appcompat.widget.Toolbar;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import android.view.View;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.Toast;
import java.util.ArrayList;
import java.util.List;
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
db = AppDataBase.getInstance(this);
for(int i=0;i<4;i++)
{
db.contactDAO().insert(c);
db.contactDAO().insert(c2);
}
contacts= db.contactDAO().getAll();
ContactsAdapter adapter = new ContactsAdapter(contacts,this,this,this);
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
MenuItem searchItem = menu.findItem(R.id.search);
@Override
public boolean onQueryTextChange(String textQuery) {
RefreshListView((ArrayList<Contact>)
db.contactDAO().findByName("%"+textQuery+"%"));
return false;
}
});
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
return super.onOptionsItemSelected(item);
}
@Override
public void selectedContact(Contact contact) {
Intent myIntent = new Intent(MainActivity.this, EditActivity.class);
myIntent.putExtra("ID",String.valueOf(contact.getID()));
startActivity(myIntent);
}
void RefreshListView(List<Contact> contacts){
ContactsAdapter adapter = new ContactsAdapter(contacts,this,this,this);
recyclerView.setAdapter(adapter);
}
}
CODE SOURCE
Contact
package com.example.annuaireprofessionnel;
import androidx.room.ColumnInfo;
import androidx.room.Entity;
import androidx.room.Ignore;
import androidx.room.PrimaryKey;
import java.io.Serializable;
@Entity
public class Contact implements Serializable {
@PrimaryKey(autoGenerate = true)
private int ID;
@ColumnInfo(name = "FirstName")
String firstName;
@ColumnInfo(name = "LastName")
String lastName;
@ColumnInfo(name = "Job")
String job;
@ColumnInfo(name = "Phone")
String phone;
@ColumnInfo(name = "Email")
String email;
@Ignore
public Contact() {
}
public Contact(Integer ID, String firstName, String lastName, String job, String phone,
String email) {
this.ID = ID;
this.firstName = firstName;
this.lastName = lastName;
this.job = job;
this.phone = phone;
this.email = email;
}
@Ignore
public Contact(String firstName, String lastName, String job, String phone, String email) {
this.firstName = firstName;
this.lastName = lastName;
this.job = job;
this.phone = phone;
this.email = email;
}
Contact DAO
package com.example.annuaireprofessionnel;
import androidx.room.Dao;
import androidx.room.Insert;
import androidx.room.Query;
import androidx.room.Update;
import java.util.List;
@Dao
public interface ContactDAO {
@Insert
void insert(Contact contact);
@Update
void update(Contact contact);
Contacts Adapter
package com.example.annuaireprofessionnel;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageButton;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import androidx.room.RoomDatabase;
import java.util.List;
@NonNull
@Override
public ContactsAdapter.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType)
{
ctx=parent.getContext();
View view=
LayoutInflater.from(parent.getContext()).inflate(R.layout.list_recycler_view,parent,false);
return new ViewHolder(view,ctx);
@NonNull
@Override
public void onBindViewHolder(@NonNull ContactsAdapter.ViewHolder holder, int position) {
Contact contact=contactsList.get(position);
database=AppDataBase.getInstance(context);
holder.id.setText(String.valueOf(contact.getID()));
holder.email.setText(contact.getEmail());
holder.job.setText(contact.getJob());
holder.name.setText(contact.getFirstName()+" "+contact.getLastName());
holder.phone.setText(contact.getPhone());
}
@Override
public int getItemCount() {
return contactsList.size();
}
}
@Override
public boolean onLongClick(View view) {
}
}
AddActivity
package com.example.annuaireprofessionnel;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;
import com.google.android.material.floatingactionbutton.FloatingActionButton;
AppDataBase database;
EditText firstName;
EditText lastName;
EditText email;
EditText phone;
EditText job;
@Override
protected void onCreate(Bundle savedInstanceState) {
database=AppDataBase.getInstance(this);
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_add);
firstName = (EditText) findViewById(R.id.firstNameInput);
lastName = (EditText) findViewById(R.id.lastNameInput);
email = (EditText) findViewById(R.id.emailInput);
phone = (EditText) findViewById(R.id.phoneInput);
job = (EditText) findViewById(R.id.jobInput);
FloatingActionButton fab = findViewById(R.id.floatingActionButton);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
database.contactDAO().insert(new
Contact(firstName.getText().toString(),lastName.getText().toString(),email.getText().toString(),j
ob.getText().toString(),phone.getText().toString()));
Toast.makeText(addActivity.this,"Added",Toast.LENGTH_SHORT).show();
Intent myIntent = new Intent(addActivity.this, MainActivity.class);
startActivity(myIntent);
}
public void clear(View view)
{
firstName.setText("");
lastName.setText("");
email.setText("");
job.setText("");
phone.setText("");
}
}
CODE SOURCE
EditActivity
package com.example.annuaireprofessionnel;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import com.google.android.material.floatingactionbutton.FloatingActionButton;
database=AppDataBase.getInstance(this);
setContentView(R.layout.activity_edit);
Intent i = getIntent();
if(i.hasExtra("ID")){
string = i.getStringExtra("ID");
}
Contact contact = database.contactDAO().findByID(Integer.parseInt(string));
firstName.setText(contact.getFirstName());
lastName.setText(contact.getLastName());
email.setText(contact.getEmail());
phone.setText(contact.getPhone());
job.setText(contact.getJob());
FloatingActionButton fab = findViewById(R.id.floatingActionButton);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
}
public void save(View view){
AppDataBase
package com.example.annuaireprofessionnel;
import android.content.Context;
import androidx.room.Database;
import androidx.room.Room;
import androidx.room.RoomDatabase;
//Create DAO
public abstract ContactDAO contactDAO();
}
2
0
2
0
/
2
0
2
1
Khawla DAROUICH
GLSID2