gpt4 book ai didi

java - 使用指针 parse.com 从两个类获取相同 objectid 的数据

转载 作者:行者123 更新时间:2023-12-01 12:31:32 26 4
gpt4 key购买 nike

Hashtag class with pointer as hashtagtype class objectid

hashtagtype clas

我在 parse.com 上有 2 个类“HashTag”和“HashTagType”想要一个查询来命中 Hashtag 表并且现在我想通过浏览关系表来访问主题标签表。 (关系表有一列存储 Hashtag 类中 HashTag 类型的对象 ID,如 Pointer 中一样)。Hashtag - Objectid、标签、指针(Hashtagtype 的 Objectid)

类列列表 -

指针列具有标记类型的相同对象 ID 的多个实例

HashtagType - Objectid、Tagtype(无重复条目)

需要一个查询,为一个标记类型(指针)提供多个标记(至少 2 个)

ParseQuery<ParseObject> query = new ParseQuery<ParseObject>("HashTagType");
ParseQuery<ParseObject> query2 = new ParseQuery<ParseObject>("HashTag");

ob2 = query.find();
for (ParseObject object : ob2) {

query2.whereEqualTo("parent", object.getObjectId());
query2.include("parent"); //the pointer column it must have
try {
ob = query2.find(); //this holds the locations Table data
}

我想在 ListView 中显示,例如

News -hashtagtype 
#breakingnews #echnology #enterainment ...all tags of **NEWS**


Marketing -hashtagtype
#smdata #ux #ecomchat #ecom #ecomerce .... all tags of Marketing

最佳答案

最好的方法 - 尝试从 parse 获取所有数据。检索时将它们存储在 Pojo 类(arraylist)中,然后使用 for 循环过滤数据。

 public class ResultClass {

public String type;
public String tags;
public ArrayList<String> listTags = new ArrayList<String>();

}

public class class2 {


public String type;
public String tag;

}
public class class1 {


public String type;

}
ParseQuery<ParseObject> hashtag = ParseQuery.getQuery("HashTagType");
hashtag.whereExists("TypeName");

hashtag.findInBackground(new FindCallback<ParseObject>()

{

public void done(List<ParseObject> NameList, ParseException e)

{

if (e == null)

{
if (NameList.size() > 0) {

for (int i = 0; i < NameList.size(); i++) {

// parsedata map = new parsedata();

ParseObject p = NameList.get(i);
String name = p.getString("TypeName");
Log.e("tyhpe name", "" + name);
// String tagid=p.getObjectId();

class1 c1 = new class1();
c1.type = "" + name;
listClass1.add(c1);

Hashtagtypes.add(name);

}

Log.d("hastags", listClass2.toString());

ParseQuery<ParseObject> query = ParseQuery
.getQuery("HashTag");
query.whereExists("Tag");
query.orderByAscending("Type");
query.setLimit(1000);

query.findInBackground(new FindCallback<ParseObject>() {

@Override
public void done(List<ParseObject> list,
ParseException e) {
// TODO Auto-generated method stub

if (e == null)

{
if (list.size() > 0) {

for (int i = 0; i < list.size(); i++) {

ParseObject p = list.get(i);

String tagid = p.getString("Tag");
String Type = p.getString("Type");

class2 c2 = new class2();

Log.e("hashtype", tagid);
Log.e("hashtag", Type);

c2.type = "" + Type;
c2.tag = "" + tagid;
listClass2.add(c2);



}

}

for (int i = 0; i < listClass1.size(); i++) {
ResultClass result = new ResultClass();
result.type = listClass1.get(i).type;
result.tags = "";
Log.e("size at pos : " + i,
listClass2.size() + "");

for (int j = 0; j < listClass2.size(); j++) {
if (listClass1.get(i).type
.equals(listClass2.get(j).type)) {
result.listTags.add(listClass2
.get(j).tag);

result.tags += (listClass2
.get(j).tag + ",");

// --removing from list for
// performance reason
listClass2.remove(j);

}
}

listResult.add(result);

}

这不是最好的方法。这将改进 api 调用

 final ArrayList<String> Hashtagtypes = new ArrayList<String>();

ParseQuery<ParseObject> hashtag = ParseQuery
.getQuery("HashTagType");
hashtag.whereExists("TypeName");

hashtag.findInBackground(new FindCallback<ParseObject>()

{

public void done(List<ParseObject> NameList, ParseException e)

{

if (e == null)

{
if (NameList.size() > 0) {

for (int i = 0; i < NameList.size(); i++) {

parsedata map = new parsedata();

ParseObject p = NameList.get(i);
String name = p.getString("TypeName");
// String tagid=p.getObjectId();
map.setHashtag(name);

Hashtagtypes.add(name);

ParseQuery<ParseObject> query =
ParseQuery.getQuery("HashTag");
query.whereEqualTo("Type", name);

query.include("parent");
query.setLimit(2);

try {


List <ParseObject>ob = query.find();

StringBuilder sb = new StringBuilder();

for (ParseObject country : ob) {
// Locate images in flag column


country.get("Tag");
sb.append(country.getString("Tag"));


}
// map.setHashtag(sb.toString());

// totaltaglist.add(map);
tagsdata.add(sb.toString());


}

catch (ParseException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}


}


}

}

}

});

关于java - 使用指针 parse.com 从两个类获取相同 objectid 的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25895853/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com