package com.example.todayapplication;
import androidx.appcompat.app.AppCompatActivity;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.util.Log;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
private MyDbHelper dbHelper;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
dbHelper=new MyDbHelper(this,"contact.db",null,1);
SQLiteDatabase db=dbHelper.getWritableDatabase();
Cursor cursor=db.rawQuery("select name,tel from contacts",null);
while(cursor.moveToNext()){
Log.d("test",cursor.getString(0));
Toast.makeText(this,cursor.getString(0),Toast.LENGTH_SHORT).show();
Toast.makeText(this, cursor.getCount()Toast.LENGTH_SHORT).show();
}
}
}
测试方法
- 界面SQL
- MYAdapter类
package com.example.mycontacts; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.view.View; import android.view.ViewGroup; import android.widget.TextView; import androidx.annotation.NonNull; import androidx.recyclerview.widget.RecyclerView; //自定义ViewHolder类,用于记录每个数据项的View组件对象 class MyViewHolder extends RecyclerView.ViewHolder { public TextView txtName; public MyViewHolder(@NonNull View itemView) { super(itemView); } } public class MyAdapter extends RecyclerView.Adapter<MyViewHolder> { private SQLiteDatabase db; private Cursor cursor; public MyAdapter(SQLiteDatabase db) { this.db = db; //执行sql语句,获取数据集 cursor = db.rawQuery("select name, tel from contacts", null); } @NonNull @Override //实现创建每个数据项的View组件, 由一个MyViewHolder对象保存组件 public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { TextView tv = new TextView(parent.getContext()); MyViewHolder vh = new MyViewHolder(tv); vh.txtName = tv; return vh; } @Override //实现第positon个数据项的View组件设置属性。holder参数就是数据项对应的MyViewHolder对象 public void onBindViewHolder(@NonNull MyViewHolder holder, int position) { cursor.moveToFirst(); //先移动到第0条记录 cursor.move(position);//移动到第position条记录 holder.txtName.setText(cursor.getString(0)); } @Override //返回数据项的个数 public int getItemCount() { return cursor.getCount(); } }
3、MydbHelper类
package com.example.mycontacts;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;
import androidx.annotation.Nullable;
public class MyDbHelper extends SQLiteOpenHelper {
public MyDbHelper(@Nullable Context context, @Nullable String name, @Nullable SQLiteDatabase.CursorFactory factory, int version) {
super(context, name, factory, version);
}
@Override //数据库创建时触发调用,通常只会触发一次
public void onCreate(SQLiteDatabase db) {
try {
//创建数据表
db.execSQL("create table if not exists contacts(name varchar, tel varchar);");
//增加记录
db.execSQL("insert into contacts values('李明', '1111111111');");
db.execSQL("insert into contacts values('张三', '2222222222');");
db.execSQL("insert into contacts values('王七', '3333333333');");
db.execSQL("insert into contacts values('陈六', '4444444444');");
}catch (Exception e) {
Log.e("test", e.getMessage());
}
}
@Override
public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {
}
}
android:layout_gravity="center"居中
- 界面结果