안 드 로 이 드 애플 릿 음악 재생 목록 구현

본 논문 의 사례 는 안 드 로 이 드 가 음악 재생 목록 을 실현 하 는 구체 적 인 코드 를 공유 하여 여러분 께 참고 하 시기 바 랍 니 다.구체 적 인 내용 은 다음 과 같 습 니 다.
(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>
프로그램 실행,음악 정보 추가:

음악 목록 에서 기록 을 클릭 하고 경고 대화 상 자 를 꺼 내 기록 을 삭제 합 니 다.

플레이어 에 대한 더 많은 내용 은《자바 플레이어 기능》을 클릭 하여 학습 하 세 요.
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기