2014-03-13 76 views
0

我有兩個類,每個具有ParseUser類和ParseGeoPoint對象的用戶引用。我必須這樣做,因爲解析不允許具有相同鍵的兩個ParseGeoPoint對象。現在我想將這兩個查詢的結果組合成一個ParseQueryAdapter併爲其設置一個listview。我的顧慮是:如何將parse.com android中兩個不同類的查詢結果組合起來?

1)我怎樣才能結合查詢的結果。

ParseQuery<Source> srclist = Source.getQuery(); 
srclist.include("user"); 
srclist.whereNear("src", src); 

ParseQuery<Destination> destlist = Destination.getQuery(); 
destlist.include("user"); 
destlist.whereEqualTo("dest", dest); 

//Source and Destination are the two classes which have one ParseGeoPoint and a user reference respectively. 

2)我如何用組合結果填充列表視圖?

這就是我正在做的結合,是不是?

Location myLoc =currentLocation; 
ParseGeoPoint mySrc=geoPointFromLocation(myLoc); 
srclist=Source.getQuery(); 
srclist.include("user"); 
srclist.whereWithinKilometers("src", mySrc, 5.0); 
destlist = Destination.getQuery(); 
destlist.include("user"); 
destlist.whereNear("dest", myDest); 
destlist.whereMatchesQuery("user", srclist); 
ParseQueryAdapter.QueryFactory<ParseUser> factory= new ParseQueryAdapter.QueryFactory<ParseUser>(){ 
@Override 
public ParseQuery<ParseUser> create() { 
user = ParseUser.getQuery(); 
user.whereMatchesQuery("user", destlist); 
user.setLimit(MAX_SEARCH_RESULTS); 
return user; 
} 
}; 

它顯然不會返回任何結果,因爲我的列表視圖仍然是空的!帶有三個字段的對象:

+0

此解決方案是否適合您?你需要更多的幫助嗎? – VonSchnauzer

+0

@VonSchnauzer對不起,但那不是我要找的! – user3129550

+0

既然你沒有太多的答案,也許你可以改述它?只是說這不是你正在尋找的是不會讓我們更接近答案:) – VonSchnauzer

回答

0

1)通過創建一個支架組合(或者你可以讓他們的私人與制定者/吸氣)

public class WhereAbouts{ 

    public String user; 
    public Source src; 
    public Destination dest; 
} 

那麼這在回調從ParseQuery

添加到列表
List<WhereAbouts> list = new ArrayList<WhereAbouts>(); 
list.add(whereAbouts); 

2)在您的getView()在適配器中你得到的行蹤對象,並設置每個文本框:

getView(...){ 
    .... 
    WhereAbouts w = getItem(position); 
    myTextField.setText(w.user); 
    //etc... 
} 

如果您不瞭解這些信息,請檢查Google/SO的Listview和適配器。

+0

我已經添加了一段代碼,我想要實現的。 – user3129550

相關問題