我想从parse.com获取数据
public void ParseQueryMap() {
query = new ParseQuery("MyObject");
query.findInBackground(new FindCallback() {
public void done(List<ParseObject> myObject, ParseException e) {
if (e == null) {
for ( int i = 0; i < myObject.size(); i++) {
stranaGet = myObject.get(i).getString("Country");
oblastGet = myObject.get(i).getString("District");
gorodGet = myObject.get(i).getString("City");
}
}
}
我想把所有这些数据都放到Android数据库
中DBHelper dbHelper;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
dbHelper = new DBHelper(this);
ContentValues cv = new ContentValues();
SQLiteDatabase db = dbHelper.getWritableDatabase();
String name = etName.getText().toString();
String email = etEmail.getText().toString();
cv.put("name", name);
cv.put("email", email);
Cursor c = db.query("mytable", null, null, null, null, null, null);
if (c.moveToFirst()) {
int idColIndex = c.getColumnIndex("id");
int nameColIndex = c.getColumnIndex("name");
int emailColIndex = c.getColumnIndex("email");
do {
Log.d(LOG_TAG, "ID = " + c.getInt(idColIndex) +
", name = " + c.getString(nameColIndex) +
", email = " + c.getString(emailColIndex));
} while (c.moveToNext());
} else {
Log.d(LOG_TAG, "0 rows");
c.close();
}
dbHelper.close();
}
class DBHelper extends SQLiteOpenHelper {
public DBHelper(Context context) {
super(context, "myDB", null, 1);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("create table mytable ("
+ "id integer primary key autoincrement,"
+ "name text,"
+ "email text" + ");");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
在此示例中,数据来自EditText,但我想用parse.com填充数据库。怎么会这样? 更新:我试着喜欢这个
public void ParseQueryMap() {
query = new ParseQuery("MyObject");
query.findInBackground(new FindCallback() {
public void done(List<ParseObject> myObject, ParseException e) {
if (e == null) {
for ( int i = 0; i < myObject.size(); i++) {
stranaGet = myObject.get(i).getString("Country");
oblastGet = myObject.get(i).getString("District");
gorodGet = myObject.get(i).getString("City");
cv.put("name", stranaGet);
cv.put("email", oblastGet);
db.insert("mytable", null, cv);
}
}
}
但没有任何反应
答案 0 :(得分:2)
答案 1 :(得分:2)
有一种更好的方法。
如果您使用某些ORM engines for Android(例如OrmLite),它允许您将数据库实体映射到java-classes,则与parse.com的集成非常简单直接。实际上,当我在android中发现ORM时,我不能再没有它了。)
假设您拥有映射到某个数据库表的实体类。您可以在其字段中添加注释,以将它们映射到parse.com对应的类字段。然后你编写一个代码来处理这些注释。
但实际上,您不必再编写代码了。以下是该想法的简单实现:https://github.com/ntoskrnl/DataSync
随意贡献:)
简而言之,该库提供了将带注释的类转换为ParseObject
的方法,反之亦然。它还为您提供了一种同步本地和远程数据的简单方法(它使用解析objectId
和updatedAt
字段来决定要做什么)