欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Android 在不同activity控制同一个数据库

程序员文章站 2024-03-21 19:50:34
...

实现效果对MainActivity界面的edit写数据库中对应的age,如果查询到就跳转到Main2Activity界面否则不跳转,在Main2Activity布局上edit写对应age然后跳转到MainActivity,输入之前写的age如果没有跳转证明删除成功。

思路

建立一个封装类对SQLiteOpenHelper的继承类管理

直接上代码

1.创建的一个继承SQLiteOpenHelper的类 mybase

public class myBASE extends SQLiteOpenHelper {
private static final String my_table="create table mytable(" +
        "id integer primary key autoincrement," +
        "name text," +
        "age integer)";
private Context mContext;
public myBASE(Context context,String name,SQLiteDatabase.CursorFactory factory,int version){
    super(context,name,factory,version);
    mContext=context;
}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

}

@Override
public void onCreate(SQLiteDatabase db) {
    db.execSQL(my_table);
    ContentValues values=new ContentValues();
    values.put("name","tony");
    values.put("age",16);
    db.insert("mytable",null,values);
    values.clear();
    values.put("name","jack");
    values.put("age",25);
    db.insert("mytable",null,values);
}

}

2.创建管理mybase的类

public class base {
private static final String table="mytable.db";
private static final int version=1;
private static base base=null;
private SQLiteOpenHelper myBASE;
private base(Context context){
    this.myBASE=new myBASE(context,table,null,version);
}
public static synchronized base setBase(Context context){
    if (base==null){
        base=new base(context);
    }
    return base;
}
public SQLiteOpenHelper getMyBASE(){
    return this.myBASE;
}
public SQLiteDatabase getWrite(){
    return myBASE.getWritableDatabase();
}

public SQLiteDatabase getread(){
    return myBASE.getReadableDatabase();
}

}

3.MainActivity代码 布局就不写了 就一个button 和一个edit

public class MainActivity extends AppCompatActivity  {
EditText text;
Button btn_start;
String string;
Cursor cursor;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    btn_start=(Button)findViewById(R.id.btn_start);
    text=(EditText)findViewById(R.id.te_write);
    btn_start.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            string=text.getText().toString();
        Toast.makeText(MainActivity.this,string,Toast.LENGTH_SHORT).show();
            SQLiteDatabase db=base.setBase(MainActivity.this).getWrite();
            cursor=db.rawQuery("select * from mytable where age=?",new String[]{string});
            if (cursor.moveToFirst()){
                do {
                  String name=cursor.getString(cursor.getColumnIndex("name"));
                    Toast.makeText(MainActivity.this,name,Toast.LENGTH_SHORT).show();
                }while (cursor.moveToNext());
                Intent intent=new Intent(MainActivity.this,Main2Activity.class);
                startActivity(intent);
            }
            cursor.close();

        }
    });
}

@Override
protected void onDestroy() {
    super.onDestroy();

}

}

4.Main2Activity代码 也是一个button 和一个edit

public class Main2Activity extends AppCompatActivity {
EditText editText;
Button btn_write;
String age;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main2);
    init();
    btn_write.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            age=editText.getText().toString();
            SQLiteDatabase db=base.setBase(Main2Activity.this).getWrite();
            db.delete("mytable","age=?",new String[]{age});
            Intent intent=new Intent(Main2Activity.this,MainActivity.class);
            startActivity(intent);
        }
    });
}
public void init(){
    editText=(EditText)findViewById(R.id.write);
    btn_write=(Button)findViewById(R.id.btn_delete);
} }

转载于:https://www.jianshu.com/p/dfa5610e1ad3