如何将数据从云获取到android
我已经完成了从android到云的数据插入,我正在尝试做的是,我想从存储的云中获取数据(据我所知),列出对象“在云中包含字符串数据类型”,并将其设置到TextView中 这是我的密码:如何将数据从云获取到android,android,list,cloud,Android,List,Cloud,我已经完成了从android到云的数据插入,我正在尝试做的是,我想从存储的云中获取数据(据我所知),列出对象“在云中包含字符串数据类型”,并将其设置到TextView中 这是我的密码: package com.cloud.test; import java.util.List; import android.app.Activity; import android.os.Bundle; import android.util.Log; import android.view.View; im
package com.cloud.test;
import java.util.List;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;
import com.parse.FindCallback;
import com.parse.Parse;
import com.parse.ParseException;
import com.parse.ParseObject;
import com.parse.ParseQuery;
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//id from the cloud and perfectly working
Parse.initialize(this, "idp7tOItFQ1TeQ87NqG5okzgsTzBZSfOmTh3LjbJ", "sPlps2HcBLzfBcZTG8uUFPi5gHkGbwFYVGHhGtwd");
}
public void onClick(View v) {
switch (v.getId()) {
case R.id.btn1:
/**
* this is for inserting data to cloud
*/
EditText et1 = (EditText)findViewById(R.id.et1);
EditText et2 = (EditText)findViewById(R.id.et2);
EditText et3 = (EditText)findViewById(R.id.et3);
String name = et1.getText().toString();
int price = Integer.parseInt(et2.getText().toString());
String desc = et3.getText().toString();
ParseObject test = new ParseObject("Wardrobe");
test.put("price", price);
test.put("name", name);
test.put("description", desc);
test.saveInBackground();
break;
case R.id.btn2:
/**
* below is my problem, i don't know how do i actually get the data from the list
* which is all String
*/
ParseQuery query = new ParseQuery("Wardrobe");
query.whereEqualTo("description", "male");
query.findInBackground(new FindCallback() {
@Override
public void done(List<ParseObject> dataList, ParseException e) {
// TODO Auto-generated method stub
if (e == null) {
TextView tv1 = (TextView)findViewById(R.id.tv1);
TextView tv2 = (TextView)findViewById(R.id.tv2);
TextView tv3 = (TextView)findViewById(R.id.tv3);
/**
* here i want to set the data to the TextView to be viewed by the user
*/
Log.d("score", "Retrieved " + dataList.size() + " scores");
} else {
Log.d("score", "Error: " + e.getMessage());
}
}
});
break;
default:
break;
}
}
}
package com.cloud.test;
导入java.util.List;
导入android.app.Activity;
导入android.os.Bundle;
导入android.util.Log;
导入android.view.view;
导入android.widget.EditText;
导入android.widget.TextView;
导入com.parse.FindCallback;
导入com.parse.parse;
导入com.parse.ParseException;
导入com.parse.ParseObject;
导入com.parse.ParseQuery;
公共类MainActivity扩展了活动{
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//来自云端的id,工作正常
初始化(这是“idp7tOItFQ1TeQ87NqG5okzgsTzBZSfOmTh3LjbJ”,“sPlps2HcBLzfBcZTG8uUFPi5gHkGbwFYVGHhGtwd”);
}
公共void onClick(视图v){
开关(v.getId()){
案例R.id.btn1:
/**
*这是用于向云插入数据的
*/
EditText et1=(EditText)findViewById(R.id.et1);
EditText et2=(EditText)findViewById(R.id.et2);
EditText et3=(EditText)findViewById(R.id.et3);
字符串名称=et1.getText().toString();
int price=Integer.parseInt(et2.getText().toString());
字符串desc=et3.getText().toString();
ParseObject测试=新的ParseObject(“衣橱”);
测试。卖出(“价格”,价格);
测试。输入(“名称”,名称);
测试。放置(“说明”,描述);
test.saveInBackground();
打破
案例R.id.btn2:
/**
*下面是我的问题,我不知道如何从列表中获取数据
*都是字符串
*/
ParseQuery查询=新的ParseQuery(“衣柜”);
查询:whereEqualTo(“描述”、“男性”);
findInBackground(新的FindCallback(){
@凌驾
公共作废完成(列表数据列表,Parsee异常){
//TODO自动生成的方法存根
如果(e==null){
TextView tv1=(TextView)findViewById(R.id.tv1);
TextView tv2=(TextView)findViewById(R.id.tv2);
TextView tv3=(TextView)findViewById(R.id.tv3);
/**
*这里我想将数据设置为用户要查看的TextView
*/
Log.d(“分数”、“检索到的分数”+dataList.size()+“分数”);
}否则{
Log.d(“分数”,“错误:+e.getMessage());
}
}
});
打破
违约:
打破
}
}
}
提前谢谢你帮助我
下面是我使用的一个更新
String.value(dataList)我得到的是com.parse。ParseObject@44f904b8,com.parse。ParseObject@44f90a30
除非您有一个重写的toString方法来打印出不同的内容,否则它会打印出类以及我认为是内存地址之类的内容。如果要使用String.value(或toString-same thing),则需要重写ParseObject的toString方法。如果您不想或无权访问该代码,则需要从ParseObject类提供的getter方法手动生成所需的字符串。public void done(List dataList,parsee){
public void done(List<ParseObject> dataList, ParseException e) {
// TODO Auto-generated method stub
if (e == null) {
TextView tv1 = (TextView)findViewById(R.id.tv1);
for(int x = 0; x < scoreList.size(); x++)
{
String d = scoreList.get(x).getString("name");
tv1.setText(tv1.getText()+" "+d);
}
Log.d("score", "Retrieved " + dataList.size() + " scores");
} else {
Log.d("score", "Error: " + e.getMessage());
}
}
});
//TODO自动生成的方法存根
如果(e==null){
TextView tv1=(TextView)findViewById(R.id.tv1);
对于(int x=0;x