Java 从Parse.com获取数据并在android上显示
请你给我一些想法和可能的部分代码,我正在尝试从Parse.com表格中获取数据,并在我的android手机上以文本视图或表格视图的形式显示它 我可以设法得到一个值,但是,表中应该显示三个值 我就是想不出我哪里出了问题!任何帮助都将不胜感激Java 从Parse.com获取数据并在android上显示,java,android,database,parse-platform,Java,Android,Database,Parse Platform,请你给我一些想法和可能的部分代码,我正在尝试从Parse.com表格中获取数据,并在我的android手机上以文本视图或表格视图的形式显示它 我可以设法得到一个值,但是,表中应该显示三个值 我就是想不出我哪里出了问题!任何帮助都将不胜感激 private void forLoadingView(String c_id) throws ParseException { ParseQuery<ParseObject> query = P
private void forLoadingView(String c_id) throws ParseException
{
ParseQuery<ParseObject> query = ParseQuery.getQuery("Review");
query.whereEqualTo("c_id", c_id);
query.orderByDescending("rating");
query.findInBackground(new FindCallback<ParseObject>() {
public void done(List<ParseObject> reviewList, ParseException e) {
if (e==null && reviewList!= null)
{
for(ParseObject object : reviewList) {
String score = object.getString("rating");
String review = object.getString("review");
String name = object.getString("name");
reviews.setText(review + " " + name + " " + score);
}
}
else
{
Log.d("score", "Error: " + e.getMessage());
}
}
});
private void for loadingview(字符串c_id)引发异常
{
ParseQuery=ParseQuery.getQuery(“审阅”);
查询:whereEqualTo(“c_id”,c_id);
query.orderByDescending(“评级”);
findInBackground(新的FindCallback(){
已完成公共作废(列表审阅列表,Parsee异常){
如果(e==null&&reviewList!=null)
{
for(ParseObject对象:reviewList){
字符串分数=object.getString(“评级”);
String review=object.getString(“review”);
字符串名称=object.getString(“名称”);
reviews.setText(review+“”+name+“”+分数);
}
}
其他的
{
Log.d(“分数”,“错误:+e.getMessage());
}
}
});
编辑:
现在,我的代码看起来更像这样:
final List<String> infoList = new ArrayList<String>();
List<String> result = new ArrayList<String>();
ParseQuery<ParseObject> query =
new ParseQuery<ParseObject>("Review");
query.whereEqualTo("c_id", c_id);
query.orderByDescending("rating");
query.findInBackground(new FindCallback<ParseObject>() {
@Override
public void done(List<ParseObject> objects, ParseException e) {
if (e == null) {
//fill your list or adapter by using objects
for(ParseObject obj : objects) {
infoList.add(object.getString("score"));
infoList.add(object.getString("review"));
infoList.add(object.getString("name"));
}
}
}
});
reviews.setText(infoList.toString());
final List infoList=new ArrayList();
列表结果=新建ArrayList();
解析查询=
新查询(“审查”);
查询:whereEqualTo(“c_id”,c_id);
query.orderByDescending(“评级”);
findInBackground(新的FindCallback(){
@凌驾
公共void done(列出对象,parsee异常){
如果(e==null){
//使用对象填充列表或适配器
for(ParseObject对象:对象){
add(object.getString(“score”);
add(object.getString(“review”);
add(object.getString(“name”);
}
}
}
});
reviews.setText(infoList.toString());
但是它仍然没有打印出来…相反,有一个空指针异常,因为(我猜)信息没有被发送到信息列表。你有什么想法吗
谢谢!试试这个,它对我有用,如果对你也有用,请告诉我:
List<String> result = new ArrayList<String>();
ParseQuery<ParseObject> query =
new ParseQuery<ParseObject>(yourQuery);
query.whereEqualTo(querykey, queryvalue);
query.addAscendingOrder(orderKey);
query.findInBackground(new FindCallback<ParseObject>() {
@Override
public void done(List<ParseObject> objects, ParseException e) {
if (e == null) {
//fill your list or adapter by using objects
for(ParseObject obj : objects) {
result.add(obj.getString(someKey));
}
}
}
});
List result=new ArrayList();
解析查询=
新建ParseQuery(yourQuery);
查询。whereEqualTo(querykey,queryvalue);
query.addAscendingOrder(orderKey);
findInBackground(新的FindCallback(){
@凌驾
公共void done(列出对象,parsee异常){
如果(e==null){
//使用对象填充列表或适配器
for(ParseObject对象:对象){
add(obj.getString(someKey));
}
}
}
});
将ParseQuery query=ParseQuery.getQuery(“Review”);
替换为ParseQuery query=new ParseQuery(“Review”);
根据Parse文档(请参阅),ParseQuery.getQuery(class_name)方法检索类中的所有对象
公共静态ParseQuery getQuery(字符串
className)为给定的类名创建新查询。默认值为
不带其他参数的查询将检索
提供的类名。参数:className-要创建的类的名称
检索的ParseObjects。返回:一个新的ParseQuery
而如果通过调用ParseQuery()
构造函数来实例化对象,则可以查询ParseQuery
对象。使用此代码
StringBuilder str_infoList = new StringBuilder();
for (String s : infoList)
{
str_infoList.append(s);
str_infoList.append(" ");
}
reviews.setText(str_infoList);
谢谢你的帮助!所以我把我的代码改成了你的,然后
if(e==null){for(ParseObject对象:messages){//使用messages String score=object.getString(“评级”);String review=object.getString(“审查”)填充适配器;String name=object.getString(“name”);reviews.setText(review+“”+name+“”+score);etc
这仍然只打印了一件事,但当我系统输出审阅时,它在终端中显示了所有值,您知道如何将其显示在屏幕上吗?如果我没有弄错,您对查询结果感到满意,但在从ParseObject提取数据时遇到问题吗?是的,我对查询感到满意。变量审阅中有三个它要保存的项目。但是,当我要求它设置textView时,它只显示最后一个项目。您知道如何让它显示所有三个项目吗?我建议您从返回的对象(或创建的字符串)获取日志若要确保这与textview的输出结果不同,请确保您的textview已正确初始化。因此,日志确实显示了正确的结果。textview的唯一问题是,为了访问变量评级、查看和命名,它需要位于查询框中。否则,我将如何初始化它?需要做什么这意味着?查询。whereEqualTo(“c_id”,c_id);您不是在这里查询特定的id吗?这三个对象是否共享相同的c_id?是的,所有对象共享相同的c_id,但不起任何作用。查询得到的值是正确的,它们只是没有在TextView中正确显示。请确保TextView reviews对forLoadingView方法是全局的,并尝试像这样设置文本s reviews.setText(object.getString(“review”)+“”+object.getString(“name”)+“”+object.getString(“评级”);