数组插入sqlite helper问题insert
Array insert sqlite helper problem insert
我需要帮助,从 ArrayList 向 sqllite 中插入数据
我的代码:
@Override
public void onResponse(Call<List<Campos>> call, Response<List<Campos>> response) {
if (!response.isSuccessful()){
mJsonTxtView.setText("Codigo: " + response.code());
return;
}
List<Campos> camposList = response.body();
for (Campos campos: camposList){
SQLiteDatabase db = null;
String content = "";
String Proyecto= campos.getsProyecto();
String Nombre = campos.getsNombre();
String Estado = campos.getsEstado();
Integer Activo= campos.getnActivo();
MyHelper helper = new MyHelper(this);
helper.saveCampos(Proyecto, Nombre, Estado, Activo);
}
}
MyHelper helper 错误= new MyHelper(this);
error: incompatible types: <anonymous Callback<List<Campos>>> cannot be converted to Context
MyHelper helper = new MyHelper(this);
我的助手创建数据库
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("CREATE TABLE Proyecto (ProyectoId INTEGER PRIMARY KEY AUTOINCREMENT, ZoneName integer,ProyectoName text, ZoneStateId integer, EstadoName text, Codigo text)");
}
我的助手插入函数
public void saveCampos(String proyecto, String nombre, String estado,Integer activo) {
SQLiteDatabase helper = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(proyecto, proyecto );
values.put(nombre, nombre );
values.put(estado, estado );
values.put(estado, activo );
helper.insert(proyecto,null, values);
helper.close();
}
能不能帮帮我,怎么解决才能插入。
MyHelper 类,
这里我留下了sqlite的帮助器class,如果数组中的数据到达提到的class savecampos:
public class MyHelper extends SQLiteOpenHelper {
private Cursor cursorLogs;
private String query = "";
SQLiteDatabase db;
Context context;
public static final String dbname ="datauser.db";
private static final int version = 1;
public MyHelper(Context context){
super(context, dbname, null, version);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("CREATE TABLE Proyecto (ProyectoId INTEGER PRIMARY KEY AUTOINCREMENT, ZoneName integer,ProyectoName text, ZoneStateId integer, EstadoName text, Codigo text)");}
public void saveCampos(String proyecto, String nombre, String estado, Integer activo) {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put("proyecto", proyecto );
values.put("nombre", nombre );
values.put("estado", estado );
values.put("activo", activo );
db.insert(proyecto,null, values);
db.close();
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
我的class要改造的调用代码:
public class SplashActivity extends MainActivity {
Context mContext;
private static Context context;
public void onCreate() {
super.onCreate();
SplashActivity.context = getApplicationContext();
}
public static Context getAppContext() {
return SplashActivity.context;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
init();
setContentView(R.layout.activity_splash);
MyHelper helper = new MyHelper(this);
SQLiteDatabase database = helper.getReadableDatabase();
retrofit retrofit = new retrofit();
retrofit.getCampos();
// 5 seconds pause on splash page
Timer timer = new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
if(isLoggedIn()){
//Redirect to home page
intent = new Intent(context,HomeActivity.class);
startActivity(intent);
finish();
}else{
//Redirect to Login Page
intent = new Intent(context,LoginActivity.class);
startActivity(intent);
finish();
}
}
},5000);
}
public void init() {
context = this;
sharedPreferences = context.getSharedPreferences(SHARED_PREF_NAME,MODE_PRIVATE);
}
你能帮帮我吗
Retrofit onResponse()
采用匿名内部 class 参数,因此内部的任何代码都引用此内部 class;因此 this
引用 context
以外的实例,要获取上下文,只需使用 getApplicationContext()
或使用 MyActivity.this
.
所以,改变这个
MyHelper helper = new MyHelper(this);
至:
MyHelper helper = new MyHelper(getApplicationContext());
或:
MyHelper helper = new MyHelper(MyActivity.this);
将 MyActivity
更改为代码段两边的 activity 名称。
我需要帮助,从 ArrayList 向 sqllite 中插入数据
我的代码:
@Override
public void onResponse(Call<List<Campos>> call, Response<List<Campos>> response) {
if (!response.isSuccessful()){
mJsonTxtView.setText("Codigo: " + response.code());
return;
}
List<Campos> camposList = response.body();
for (Campos campos: camposList){
SQLiteDatabase db = null;
String content = "";
String Proyecto= campos.getsProyecto();
String Nombre = campos.getsNombre();
String Estado = campos.getsEstado();
Integer Activo= campos.getnActivo();
MyHelper helper = new MyHelper(this);
helper.saveCampos(Proyecto, Nombre, Estado, Activo);
}
}
MyHelper helper 错误= new MyHelper(this);
error: incompatible types: <anonymous Callback<List<Campos>>> cannot be converted to Context
MyHelper helper = new MyHelper(this);
我的助手创建数据库
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("CREATE TABLE Proyecto (ProyectoId INTEGER PRIMARY KEY AUTOINCREMENT, ZoneName integer,ProyectoName text, ZoneStateId integer, EstadoName text, Codigo text)");
}
我的助手插入函数
public void saveCampos(String proyecto, String nombre, String estado,Integer activo) {
SQLiteDatabase helper = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(proyecto, proyecto );
values.put(nombre, nombre );
values.put(estado, estado );
values.put(estado, activo );
helper.insert(proyecto,null, values);
helper.close();
}
能不能帮帮我,怎么解决才能插入。
MyHelper 类, 这里我留下了sqlite的帮助器class,如果数组中的数据到达提到的class savecampos:
public class MyHelper extends SQLiteOpenHelper {
private Cursor cursorLogs;
private String query = "";
SQLiteDatabase db;
Context context;
public static final String dbname ="datauser.db";
private static final int version = 1;
public MyHelper(Context context){
super(context, dbname, null, version);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("CREATE TABLE Proyecto (ProyectoId INTEGER PRIMARY KEY AUTOINCREMENT, ZoneName integer,ProyectoName text, ZoneStateId integer, EstadoName text, Codigo text)");}
public void saveCampos(String proyecto, String nombre, String estado, Integer activo) {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put("proyecto", proyecto );
values.put("nombre", nombre );
values.put("estado", estado );
values.put("activo", activo );
db.insert(proyecto,null, values);
db.close();
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
我的class要改造的调用代码:
public class SplashActivity extends MainActivity {
Context mContext;
private static Context context;
public void onCreate() {
super.onCreate();
SplashActivity.context = getApplicationContext();
}
public static Context getAppContext() {
return SplashActivity.context;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
init();
setContentView(R.layout.activity_splash);
MyHelper helper = new MyHelper(this);
SQLiteDatabase database = helper.getReadableDatabase();
retrofit retrofit = new retrofit();
retrofit.getCampos();
// 5 seconds pause on splash page
Timer timer = new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
if(isLoggedIn()){
//Redirect to home page
intent = new Intent(context,HomeActivity.class);
startActivity(intent);
finish();
}else{
//Redirect to Login Page
intent = new Intent(context,LoginActivity.class);
startActivity(intent);
finish();
}
}
},5000);
}
public void init() {
context = this;
sharedPreferences = context.getSharedPreferences(SHARED_PREF_NAME,MODE_PRIVATE);
}
你能帮帮我吗
Retrofit onResponse()
采用匿名内部 class 参数,因此内部的任何代码都引用此内部 class;因此 this
引用 context
以外的实例,要获取上下文,只需使用 getApplicationContext()
或使用 MyActivity.this
.
所以,改变这个
MyHelper helper = new MyHelper(this);
至:
MyHelper helper = new MyHelper(getApplicationContext());
或:
MyHelper helper = new MyHelper(MyActivity.this);
将 MyActivity
更改为代码段两边的 activity 名称。