안 드 로 이 드 애플 릿 음악 재생 목록 구현
(1)SQLiteOpenHelper 를 계승 하여 onCreate()와 onUpgrade()방법 을 다시 쓰 고 insert(),delete(),query()방법 을 추가 하여 데이터 의 추가,삭제,조 회 를 실현 합 니 다.DBHelper 클래스 의 코드 는 다음 과 같 습 니 다.
package com.example.musiclist;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
public class DBHelper extends SQLiteOpenHelper{
private static final String DB_NAME = "music.db"; //
private static final String TBL_NAME = "MusicTbl"; //
private SQLiteDatabase db; // SQLiteDatabase
//
DBHelper(Context c){
super(c, DB_NAME, null, 2);
}
@Override
public void onCreate(SQLiteDatabase db){
// SQLiteDatabase
this.db = db;
//
String CREATE_TBL = "create table MusicTbl(_id integer primary key autoincrement, name text, singer text)";
db.execSQL(CREATE_TBL);
}
//
public void insert(ContentValues values){
SQLiteDatabase db = getWritableDatabase();
db.insert(TBL_NAME, null, values);
db.close();
}
//
public Cursor query(){
SQLiteDatabase db = getWritableDatabase();
Cursor c = db.query(TBL_NAME, null, null, null, null, null, null);
return c;
}
//
public void del(int id){
if(db == null){
db = getWritableDatabase();
}
db.delete(TBL_NAME, "_id=?", new String[]{String.valueOf(id)});
}
//
public void close(){
if(db != null){
db.close();
}
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
(2)음악 을 추가 하 는 AddActivity 를 만 들 고 인터페이스 에 두 개의 텍스트 상자 와 단 추 를 추가 하여 음악 이름과 가수 이름 을 입력 합 니 다.'추가'단 추 를 누 르 면 데 이 터 를 표 에 삽입 합 니 다.구체 적 인 코드 는 다음 과 같 습 니 다.
package com.example.musiclist;
import android.app.Activity;
import android.content.ContentValues;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
public class AddActivity extends Activity {
private EditText et1, et2;
private Button b1;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_add);
this.setTitle(" ");
et1 = (EditText)findViewById(R.id.EditTextName);
et2 = (EditText)findViewById(R.id.EditTextSinger);
b1 = (Button)findViewById(R.id.ButtonAdd);
b1.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
//
String name = et1.getText().toString();
String singer = et2.getText().toString();
// ContentValues 。 key values
ContentValues values = new ContentValues();
values.put("name", name);
values.put("singer", singer);
// DBHelper
DBHelper helper = new DBHelper(getApplicationContext());
// insert()
helper.insert(values);
// QueryActivity,
Intent intent = new Intent(AddActivity.this, QueryActivity.class);
startActivity(intent);
}
});
}
}
'추가'단 추 를 누 르 면 사용자 가 입력 한 음악 이름과 가수 정 보 를 ContentValues 대상 에 봉인 한 다음 DBHelper 의 insert()방법 으로 기록 을 데이터베이스 에 삽입 한 다음 Query Activity 로 넘 어가 음악 목록 을 표시 합 니 다.AddActivity 의 레이아웃 파일 내용 은 다음 과 같 습 니 다.
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:padding="10dp">
<TableLayout
android:id="@+id/TableLayout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:stretchColumns="1">
"
<TableRow
android:id="@+id/TableRow01"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<TextView
android:id="@+id/TextView01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=" "/>
<EditText
android:id="@+id/EditTextName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=""/>
</TableRow>
<TableRow
android:id="@+id/TableRow02"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<TextView
android:id="@+id/TextView02"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=" "/>
<EditText
android:id="@+id/EditTextSinger"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=""/>
</TableRow>
<Button
android:id="@+id/ButtonAdd"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=" "/>
</TableLayout>
</LinearLayout>
(3)음악 목록 을 보 여 주 는 Query Activity 를 만 듭 니 다.구체 적 인 코드 는 다음 과 같 습 니 다.
package com.example.musiclist;
import android.app.AlertDialog;
import android.app.ListActivity;
import android.content.DialogInterface;
import android.database.Cursor;
import android.os.Bundle;
import android.support.v4.widget.CursorAdapter;
import android.text.AlteredCharSequence;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ListView;
import android.widget.SimpleCursorAdapter;
public class QueryActivity extends ListActivity {
//
private ListView listView = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.setTitle(" ");
final DBHelper helpter = new DBHelper(this);
// listview ,
listView = getListView();
// ,
Cursor c = helpter.query();
//
String[] from = {"_id", "name", "singer"};
// ID
int[] to = {R.id.text0, R.id.text1, R.id.text2};
//
SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, R.layout.activity_query, c, from, to); //
listView.setAdapter(adapter);
//
final AlertDialog.Builder builder = new AlertDialog.Builder(this);
// ListView
listView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?>arg0, View arg1, int arg2, long arg3){
final long temp = arg3;
builder.setMessage(" ?").setPositiveButton(" ", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
//
helpter.del((int)temp);
//
Cursor c = helpter.query();
String[] from = {"_id", "name", "singer"};
int[] to = {R.id.text0, R.id.text1, R.id.text2};
SimpleCursorAdapter adapter = new SimpleCursorAdapter(getApplicationContext(), R.layout.activity_query, c, from, to); //
listView.setAdapter(adapter);
}
}).setNegativeButton(" ", null);
AlertDialog ad = builder.create();
ad.show();
}
});
helpter.close();
}
}
위 코드 에서 DBHelper 의 query()방법 을 호출 하여 데이터 베 이 스 를 조회 하고 Cursor 커서 를 되 돌려 줍 니 다.그리고 Simple Cursor Adapter 어댑터 를 사용 하여 ListView 컨트롤 에 데 이 터 를 연결 하고 ListView 컨트롤 에 감청 기 를 등록 합 니 다.기록 을 클릭 하면 경고 대화 상자 가 삭제 여 부 를 표시 하고"예"를 누 르 십시오.DBHelper 의 del()방법 으로 지정 한 기록 을 삭제 합 니 다.QueryActivity 레이아웃 파일 의 내용 은 다음 과 같 습 니 다.
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/text0"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="25px"/>
<TextView
android:id="@+id/text1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="25px"/>
<TextView
android:id="@+id/text2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="25px"/>
</LinearLayout>
프로그램 실행,음악 정보 추가:음악 목록 에서 기록 을 클릭 하고 경고 대화 상 자 를 꺼 내 기록 을 삭제 합 니 다.
플레이어 에 대한 더 많은 내용 은《자바 플레이어 기능》을 클릭 하여 학습 하 세 요.
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Bitrise에서 배포 어플리케이션 설정 테스트하기이 글은 Bitrise 광고 달력의 23일째 글입니다. 자체 또는 당사 등에서 Bitrise 구축 서비스를 사용합니다. 그나저나 며칠 전 Bitrise User Group Meetup #3에서 아래 슬라이드를 발표했...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.