21DH113425 - Nguyễn Phước An - Lab - 6
21DH113425 - Nguyễn Phước An - Lab - 6
21DH113425 - Nguyễn Phước An - Lab - 6
import android.Manifest;
import android.annotation.SuppressLint;
import android.content.ContentResolver;
import android.content.pm.PackageManager;
import android.database.Cursor;
import android.net.Uri;
import android.provider.CallLog;
import android.provider.ContactsContract;
import android.support.v4.app.ActivityCompat;
import android.support.v4.content.ContextCompat;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ListView;
import android.widget.Toast;
import java.util.ArrayList;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//Find view
mbtnDanhBa = findViewById(R.id.btnDanhBa);
mbtnLichSu = findViewById(R.id.btnLichSu);
mlvDs = findViewById(R.id.listview);
mbtnLichSu.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
showHistory();
}
});
}
@SuppressLint("Range")
public void showHistory()
{
list = new ArrayList<String>();
if (ContextCompat.checkSelfPermission(this,
Manifest.permission.READ_CALL_LOG) != PackageManager.PERMISSION_GRANTED)
{
ActivityCompat.requestPermissions(this, new String[]
{Manifest.permission.READ_CALL_LOG}, 0);
}
}
b. activity_main.xml
<?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"
tools:context=".MainActivity" >
<TextView
android:id="@+id/textView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="@color/purple_200"
android:textSize="14sp"
android:textAllCaps="true"
android:text="Ứng dụng hiển thị danh bạ và lịch sử cuộc gọi" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:orientation="horizontal">
<Button
android:id="@+id/btnDanhBa"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Hiển thị danh bạ" />
<Button
android:id="@+id/btnLichSu"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Lịch sử cuộc gọi" />
</LinearLayout>
<ListView
android:id="@+id/listview"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="5dp" />
</LinearLayout>
Bài 2:
1/MainActivity.java
package edu.huflit.project.bt62;
import android.annotation.SuppressLint;
import android.content.ContentValues;
import android.database.Cursor;
import android.net.Uri;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import java.util.ArrayList;
import java.util.List;
//Find view
editTextTen = findViewById(R.id.editTextTen);
editTextNgaySinh = findViewById(R.id.editTextNgaySinh);
btnThem = findViewById(R.id.btnThem);
btnHienThi = findViewById(R.id.btnHienthi);
mlvDs = findViewById(R.id.lvDs);
values.put(DBHelper.TEN, editTextTen.getText().toString());
values.put(DBHelper.NGAYSINH,
editTextNgaySinh.getText().toString());
getContentResolver().insert(NhanVienProvider.CONTENT_URI,
values);
hienThiDuLieu();
}
});
}
@SuppressLint("Range")
public void hienThiDuLieu() {
String URI = "content://com.tqky.contentprovidercreate" +
"/NhanVien";
Uri NhanVien = Uri.parse(URI);
Cursor c = getContentResolver().query(NhanVien, null, null, null,
null);
if (c == null) {
return;
}
List<String> list = new ArrayList<>();
if(c.moveToFirst()){
while (!c.isAfterLast()) {
list.add(c.getString(c.getColumnIndex(DBHelper._ID)) +
"\r\n " +
c.getString(c.getColumnIndex(DBHelper.TEN)) +
"\r\n " +
c.getString(c.getColumnIndex(DBHelper.NGAYSINH)));
c.moveToNext();
}
}
ArrayAdapter<String> adapter = new
ArrayAdapter<>(getApplicationContext(), R.layout.lv_item, list);
mlvDs.setAdapter(adapter);
}
}
2/activitymain_xml
<?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:layout_margin="10dp"
android:orientation="vertical"
tools:context=".MainActivity" >
<EditText
android:id="@+id/editTextTen"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="textPersonName"
android:textSize="20sp"
android:padding="10dp"
android:textColor="@color/black"
android:textColorHint="#666666"
android:hint="Tên" />
<EditText
android:id="@+id/editTextNgaySinh"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="text"
android:textSize="20sp"
android:padding="10dp"
android:textColor="@color/black"
android:layout_marginTop="10dp"
android:textColorHint="#666666"
android:hint="Ngày sinh"/>
<Button
android:id="@+id/btnThem"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:text="Thêm" />
<Button
android:id="@+id/btnHienthi"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:text="Hiển thị tất cả" />
<ListView
android:id="@+id/lvDs"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="5dp"/>
</LinearLayout>
3/lv_item.xml
<?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="wrap_content"
android:orientation="vertical">
<TextView
android:id="@+id/tvContent"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="@color/black"
android:textSize="18sp"
android:text="content" />
</LinearLayout>
4/DBHelper.java
package edu.huflit.project.bt62;
import android.database.sqlite.SQLiteOpenHelper;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int
newVersion) {
}
5/NhanVien.java
package edu.huflit.project.bt62;
//
public NhanVien()
{
}
public NhanVien(long id, String ten, String ngaySinh) {
this.id = id;
Ten = ten;
NgaySinh = ngaySinh;
}
//
public long getId() {
return id;
}
}
6/NhanVienProvider.java
package edu.huflit.project.bt62;
import android.content.ContentProvider;
import android.content.ContentUris;
import android.content.ContentValues;
import android.content.Context;
import android.content.UriMatcher;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteQueryBuilder;
import android.net.Uri;
import android.text.TextUtils;
import java.util.HashMap;