Tải bản đầy đủ (.pdf) (12 trang)

đồ án môn lập trình ứng dụng cho các thiết bị di dộng đề tài xây dựng ứng dụng tra cứu bài hát karaoke

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.06 MB, 12 trang )

<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">

<b>ĐẠI HỌC DUY TÂNTRƯỜNG KHOA HỌC MÁY TÍNH</b>

ĐỒ ÁN MƠN LẬP TRÌNH ỨNG DỤNG CHO CÁC THIẾT BỊ DI DỘNG

<b>Đề tài:</b>

<b>XÂY DỰNG ỨNG DỤNG TRA CỨU BÀI HÁT KARAOKEGiảng viên hướng dẫn: Võ Minh Thông</b>

<b>Sinh viên thực hiện : Nguyễn Văn Lưu - 48321</b>

<i>Đà Nẵng ,tháng 12 năm 2023</i>

</div><span class="text_page_counter">Trang 2</span><div class="page_container" data-page="2">

<b>1. Tổng quan giao diện</b>

- Về giao diện chính, ứng dụng có 3 tab có thể chuyển qua lại.

<i>Tab 1: Tìm kiếm (có thể tìm theo Tên hoặc Mã bài hát)</i>

</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3">

<i>Tab 2: Danh sách bài hát</i>

</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="4">

<i> Tab 3: Bài hát yêu thích</i>

</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5">

<b>1. Code cụ thể:- File: activity_main.xml</b>

<b>- File: activity_sub.xml</b>

</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6">

<b>- File: Listitem.xml</b>

<b>- File: Item.class</b>

</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7">

<b>- File: myarrayAdapter.java</b>

- public class myarrayAdapter extends ArrayAdapter<Item> { Activity context = null;

ArrayList<Item> myArray = null; int LayoutId;

public myarrayAdapter(Activity context, int

LayoutId,ArrayList<Item>arr) { super(context, LayoutId arr), ; // TODO Auto-generated constructor stub this.context = context;

this.LayoutId = LayoutId; this.myArray = arr; }

@Override

public View getView(int position View convertView ViewGroup , ,

parent) {

// TODO Auto-generated method stub

LayoutInflater inflater = context.getLayoutInflater(); convertView = inflater.inflate(LayoutId, null ;)

Item myItem = myArray.get(position);

TextView tieude = convertView.findViewById(R.id.txttieude);

</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="8">

public void onClick(View view) { int thich = myItem.getThich();

ContentValues values = new ContentValues(); //Cập nhật vào cơ sở dữ liệu

MainActivity.database.update("ArirangSongList", values, "MABH=?", new String[]{myItem.getMaso()}); }

});

tieude.setOnClickListener(new View.OnClickListener() { @Override

public void onClick(View v) { // TODO Auto-generated method stub tieude.setTextColor(Color.RED); maso.setTextColor(Color.RED);

Intent intent1 = new Intent(context, SubActivity.class); Bundle bundle1 = new Bundle();

bundle1.putString("maso", myItem.getMaso());

</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9">

import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.util.ArrayList;

public class MainActivity extends AppCompatActivity { String DB_PATH_SUFFIX = "/databases/"; public static SQLiteDatabase database=null; public static String DATABASE_NAME="arirang.sqlite"; EditText edttim;

ListView lv1 lv2 lv3, , ; ArrayList<Item> list1 list2 list3, , ;

myarrayAdapter myarray1 myarray2 myarray3, , ;

private void addControl() { // TODO Auto-generated method stub list1 =new ArrayList<Item>(); list2 =new ArrayList<Item>(); list3 =new ArrayList<Item>();

myarray1 = new myarrayAdapter(MainActivity.this,

R.layout.listitem, list1);

</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10">

myarray3 = new myarrayAdapter(MainActivity.this,

R.layout.listitem, list3);

private void addEvents() { // TODO Auto-generated method stub

tab.setOnTabChangedListener(new TabHost.OnTabChangeListener() { @Override

public void onTabChanged(String tabId) { // TODO Auto-generated method stub

// Sự kiện khi Click vào Button xóa trên Tab Tìm kiếm btnxoa.setOnClickListener(new View.OnClickListener() { @Override

public void onClick(View v) { // TODO Auto-generated method stub edttim.setText( )"";

} }); }

//Hàm thêm bài hát vào Listview trên Tab Yêu thích private void addYeuthich() {

// TODO Auto-generated method stub myarray3.clear();

Cursor c = database.rawQuery("SELECT * FROM ArirangSongList WHERE YEUTHICH = 1", null ;)

// Hàm thêm bài hát vào Listview trên Tab Danh sách bài hát private void addDanhsach() {

// TODO Auto-generated method stub

</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11">

Item(c.getString( ) c.getString( ) c.getInt( )))1, 2, 6 ;

private void addTim() {

// TODO Auto-generated method stub

edttim.addTextChangedListener(new TextWatcher() { @Override

public void beforeTextChanged(CharSequence s, int start, int

count, int after) { getData(); } @Override

public void onTextChanged(CharSequence s, int start, int

before, int count) { }

private void getData(){

String dulieunhap =edttim.getText().toString(); myarray1.clear();

if (!edttim.getText().toString().equals("")) { Cursor c = database.rawQuery("SELECT * FROM

ArirangSongList WHERE TENBH1 LIKE '"+"%"+dulieunhap+"%"+"' OR MABH LIKE '" "%"+ +dulieunhap+"%" "'"+ , null); c.moveToFirst();

while(c.isAfterLast()==false)

private void processCopy() {

File dbFile = getDatabasePath(DATABASE_NAME); if (!dbFile.exists())

{

try{CopyDataBaseFromAsset();

Toast.makeText(this, "Cap nhat du lieu thanh cong!", Toast.LENGTH_LONG).show();

}

catch (Exception e){

</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="12">

} } }

private String getDatabasePath() {

return getApplicationInfo().dataDir DB_PATH_SUFFIX+ + DATABASE_NAME;

}

public void CopyDataBaseFromAsset() { // TODO Auto-generated method stub try {

InputStream myInput;

myInput = getAssets().open(DATABASE_NAME); // Path to the just created empty db

String outFileName = getDatabasePath(); //if the path doesn't exist first, create it File f = new File(getApplicationInfo().dataDir + DB_PATH_SUFFIX);

if (!f.exists()) f.mkdir();

//Open the empty db as the output stream

OutputStream myOutput = new FileOutputStream(outFileName); //transfer bytes from the inputfile to the outputfile

byte[] buffer = new byte[1024];

</div>

×