Android小程序实现音乐播放列表

本文实例为大家分享了Android实现音乐播放列表的具体代码,供大家参考,具体内容如下

(1)创建一个数据类工具类DBHelper,该类继承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()方法将记录插入到数据库中,然后跳转到QueryActivity来显示音乐列表。

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)创建显示音乐列表的QueryActivity,具体代码如下:

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游标,然后使用SimpleCursorAdapter适配器将数据绑定到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>

运行程序,添加音乐信息:

在音乐列表中单击一条记录,弹出警告对话框删除一条记录:

更多关于播放器的内容请点击《java播放器功能》进行学习。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Android实现简易计算器小程序

    本文实例为大家分享了Android实现简易计算器小程序的具体代码,供大家参考,具体内容如下 目标效果: 通过编写代码,可以实现整数和小数的加减乘除运算,以及删除和清空的功能. 1.页面中Button使用的是线性布局,最外边一个是父布局,第一行C,DEL,/,*为第一个子布局,第二行7,8,9,-为第二个子布局,第三行4,5,6,+为第三个子布局,第四五行为第四个子布局,第四个子布局中还有两个相当于是孙布局的级别,1,2,3为第一个孙布局,0和.为第二个孙布局,=在两个孙布局之外第四个子布局以内.

  • Android小程序实现个人信息管理系统

    本文实例为大家分享了Android实现个人信息管理系统的具体代码,供大家参考,具体内容如下 要求:使用SQLite实现个人信息管理系统,个人信息包括姓名,年龄,性别以及学历 (1)DBHelper.java代码如下: package com.example.system; import android.content.ContentValues; import android.content.Context; import android.database.Cursor; import andr

  • Android实现闹钟小程序

    最近写了个闹钟的程序,看到SharedPreferences在一个程序中可以共享数据,SharedPreferences是一个轻量级的键值存储机制,只可以存储基本数据类型.我就拿来用用,没想到SharedPreferences太好了,真是轻量级的保存数据的好的工具,比sqlite好用多了!以后我又多了一种编程思想了,呵呵,所以现在分享给大家,特别注意这点:这个无法直接在多个程序间共享Preferences数据.程序关闭再打开时间仍然保留你上次设置的时间.这就是Preferences的作用!   

  • Android开发微信小程序页面的图文教程

    初识Android Android是我们在日常生活中注视最久的,我们所使用的所有手机APP基本上都可以在Android上运行.而这次我们将开发一个app页面. Android Studio Android Studio 是谷歌推出的一个Android集成开发工具,基于IntelliJ IDEA. 类似 Eclipse ADT,Android Studio 提供了集成的 Android 开发工具用于开发和调试.大概就是一个开发工具. 项目介绍 我们会首先建立大概的框架,会将一个页面分为三个部分.下

  • Android小程序实现选项菜单

    本文实例为大家分享了Android实现选项菜单的具体代码,供大家参考,具体内容如下 创建选项菜单步骤: (1)覆盖Activity的onCreateOptionsMenu()方法,当第一次打开菜单时该方法被自动调用. (2)调用Menu的add()方法添加菜单项(MenuItem). (3)当菜单项被选择时,覆盖Activity的onOptionsItemSelected()方法来响应事件. 具体实现: (1)编写程序代码 package com.example.menu; import and

  • Android小程序实现切换背景颜色

    本文实例为大家分享了Android实现切换背景颜色的具体代码,供大家参考,具体内容如下 (1)首先打开界面布局文件,添加两个Button <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="fill_parent"

  • Android小程序实现简易QQ界面

    本文实例为大家分享了Android实现简易QQ界面的具体代码,供大家参考,具体内容如下 要求: (1)与QQ界面控件数目.样式相同 (2)与QQ的图形化界面相同 (3)实现一个简单的点击事件 具体实现: (1)编写程序代码 package com.example.login; import android.app.Activity; import android.os.Bundle; import android.util.Log; import android.view.Menu; impor

  • Android 仿微信小程序入口动画

    目录 效果对比 流程分析 自定义ViewGroup 小程序缩放比例值计算 动画遮罩 MainActivity 效果对比 微信原版 仿照效果 流程分析 自定义ViewGroup 整个布局是通过自定义ViewGroup来管理的,在自定义ViewGroup中,子布局一共有两个,一个是小程序布局,一个是会话列表布局,然后按照上下分别摆放就可以了. package com.example.kotlindemo.widget.weixin import android.content.Context imp

  • 微信小程序—微信跳一跳,Android游戏助手(外挂)使用教程详解

    作为一名有着丰富实战经验的Android开发人员,作为一个有着一定基础和实战的逆向新司机,第一次面对github上的这个项目自己也是懵的,即使看完了README,也还是不知道从何下手.在此之前玩游戏从未使用过游戏助手之类的.那么我在想,作为小半个专业选手尚且这样,广大小白又能比我好到哪里去呢? 以前我也曾经是个单纯的好骚年啊! 后来经过仔细阅读README,加上摸索,和查看源码,才慢慢走上正途:下面记录一下,以备你查看: 成果 图片说明:本人排行第二,记得我自己才跳了昨天一百七十多分,大多数都是

  • Android小程序实现访问联系人

    本文实例为大家分享了Android实现访问联系人的具体代码,供大家参考,具体内容如下 要求: 编写程序,使用ContentProvider实现访问联系人 ContentProvider类的作用: ContentProvider(内容提供器)是所有应用程序之间数据存储和检索的一个桥梁,其作用是是各个应用程序之间能共享数据:主要功能是存储.检索数据并向应用程序提供访问数据的接口. 基本操作: 查询:使用ContentResolver的query()方法查询数据与 SQLite查询一样,返回一个指向结

随机推荐