SQLite的使用及最近播放的实现
这篇博客就要来介绍下android上的数据库该如何的使用,在不断的开发过程中,有越来越多的数据和信息需要存储,这时候就需要用到数据库了,不例外的,android平台和iphone也都采用了SQLite作为存储信息的工具.对于开发人员来说,各种数据库的API已经封装好了,我们能够很快上手并且简单的使用.
其实说起来还有点坑爹,我开始接触SQLite的时候,还不知道有SQLiteOpenHelper这个类可以继承,不过好像也没有什么大的关系,自己在上面手动封装数据库的类.上面的那个链接里有非常详细的讲解了,我下面就结合播放器,说说我自己怎么慢慢的摸索的.
在播放器里面,有一个模块是最近播放,点击之后会切换一个Fragment,在启动这个Fragment的时候,会查询数据库中相应的表格,将取出的数据放在一个ListView显示出来.
先创建一个Fragment,命名为RecentlyPlayFragment.java:
package com.example.dada.myapplication;
import android.app.Activity;
import android.app.FragmentManager;
import android.app.FragmentTransaction;
import android.database.Cursor;
import android.graphics.Color;
import android.net.Uri;
import android.os.Bundle;
import android.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.LinearLayout;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.SimpleCursorAdapter;
public class RecentlyPlayFragment extends Fragment {
private OnFragmentInteractionListener mListener;
public static RecentlyPlayFragment newInstance() {
RecentlyPlayFragment fragment = new RecentlyPlayFragment();
Bundle args = new Bundle();
fragment.setArguments(args);
return fragment;
}
public RecentlyPlayFragment() {
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (getArguments() != null) {
}
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_recently_play, container, false);
initialize(rootView); //自定义的初始化函数
return rootView;
}
private void initialize(View rootView){
rootView.findViewById(R.id.recent_fragment_to_main_fragment). //回退到主fragment按钮监听
setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
MainFragment mainFragment = new MainFragment();
FragmentManager fragmentManager = getFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.replace(R.id.fragment_layout, mainFragment);
fragmentTransaction.addToBackStack(null);
fragmentTransaction.commit();
}
});
((ListView) rootView.findViewById(R.id.recently_play_music_list)).setOnItemClickListener( //列表点击事件监听器,点击之后回调函数,交给activity处理
new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
mListener.onFragmentInteraction(AppConstant.PlayerMsg.LIST_CLICK,position);
}
}
);
<span style="color:#ff0000;"> MainActivity.myData