2015-09-06 143 views
1

我想從用戶表中檢索所有數據,並在用戶插入時在listView中顯示它。爲此,我在主活動中使用ListFragment,我還創建了用戶類定義的getter和setter函數,因爲它在parse.com推薦 問題是當我運行我的應用程序它不顯示任何數據既不會給我任何錯誤。無法從用戶表中檢索數據parse.com

這是用戶表中parse.com enter image description here

這裏是我的用戶類代碼。我的片段

@ParseClassName("User") 
public class User extends ParseObject { 

public User(){} 

public String getUsername(){ 
    return getString("username"); 
} 
public void setUsername(String username){ 
    put("username",username); 
} 

public String getLatitude(){ 
    return getString("Latitude"); 
} 
public void setLatitude(String latitude){ 
    put("Latitude",latitude); 
} 
public String getLongitude(){ 
    return getString("Longitude"); 
} 
public void setLongitude(String longitude){ 
    put("Longitude",longitude); 
} 
public void setBloodType(String bloodType){put("Bloodtype",bloodType);} 
public String getBloodType(){return getString("Bloodtpye");} 

@Override 
public String toString() { 
    return getString("username") + "\n" + getString("Longitude") + "\n" + getString("Latitude")+ "\n"+getString("Bloodtype"); 
} 
} 

下面的代碼

public class Fragment extends ListFragment { 

List<User> user1 = new ArrayList<>(); 

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
    return inflater.inflate(R.layout.fragment_layout,container,false); 
} 

@Override 
public void onActivityCreated(Bundle savedInstanceState) { 
    super.onActivityCreated(savedInstanceState); 

    ParseQuery<User> query = new ParseQuery<User>("User"); 
    query.findInBackground(new FindCallback<User>() { 
     @Override 
     public void done(List<User> list, ParseException e) { 
      if(e !=null){ 
       Toast.makeText(getActivity(),"Error"+e,Toast.LENGTH_SHORT).show(); 
      } 
      else { 
       for (User user : list){ 
        User newUser = new User(); 
        newUser.setUsername(user.getUsername()); 
        newUser.setLatitude(user.getLatitude()); 
        newUser.setLongitude(user.getLongitude()); 
        newUser.setBloodType(user.getBloodType()); 
        user1.add(newUser); 
       } 

       ArrayAdapter<User> adapter = new ArrayAdapter<User>(getActivity(),android.R.layout.simple_list_item_1,user1); 
       setListAdapter(adapter); 
      } 
     } 
    }); 

} 
} 

幫助我

好吧,我打我的周圍的代碼和我改變查詢的代碼,現在它給了我一些結果。檢查這個截圖

enter image description here

查詢更新的代碼是在這裏

ParseQuery<ParseUser> query = ParseUser.getQuery(); 
    query.findInBackground(new FindCallback<ParseUser>() { 
     @Override 
     public void done(List<ParseUser> list, ParseException e) { 
      if(e==null){ 
       for (ParseUser user :list){ 
        ParseUser newUser = new ParseUser(); 
        newUser.getString(user.getString("username")); 
        newUser.getString(user.getString("Latitude")); 
        newUser.getString(user.getString("Longitude")); 
        newUser.getString(user.getString("Bloodtype")); 
        newUser.getString(user.getString("Mobile")); 
        user1.add(newUser); 

       } 
       ArrayAdapter<ParseUser> adapter = new ArrayAdapter<ParseUser>(getActivity(),android.R.layout.simple_list_item_1,user1); 
       setListAdapter(adapter); 
      } 
     } 
    }); 
+0

請發佈錯誤 –

+0

它不會給出任何錯誤 –

+0

你能告訴我,如果這是正確的方式來檢索用戶表中的數據嗎? –

回答

0

我覺得有什麼不對您的對象的可訪問性。你應該玩ParseACL。

默認ACL可以輕鬆創建遵循常見訪問模式的應用程序。像Twitter的應用程序,例如,當用戶的內容一般是向世界可見,可以設置一個默認的ACL如:

ParseACL defaultACL = new ParseACL(); 
defaultACL.setPublicReadAccess(true); 
ParseACL.setDefaultACL(defaultACL, true); 

對於像Dropbox的,其中用戶的數據只能由用戶自己訪問的應用除非明確許可被給予,你會提供,其中僅當前用戶被授予訪問權限的默認的ACL:

ParseACL.setDefaultACL(new ParseACL(), true); 

,它記錄的數據來分析,但不提供對數據的任何用戶的訪問反而會拒絕訪問的應用程序同時提供限制性ACL:

ParseACL.setDefaultACL(new ParseACL(), false); 

看看https://parse.com/docs/android/guide

+0

試過沒有任何反應。 –

+0

請再次通讀我的問題。我現在更新了它。它回來了我一些奇怪的東西 –

+0

解決方案在於自定義適配器。我解決了它謝謝 –

0

剛剛嘗試這一點

建立用戶延伸,而不是的parseObject ParseUser。

public class User extends ParseUser 

,並使用舊代碼用於設置適配器即

else { 
      for (User user : list){ 
       User newUser = new User(); 
       newUser.setUsername(user.getUsername()); 
       newUser.setLatitude(user.getLatitude()); 
       newUser.setLongitude(user.getLongitude()); 
       newUser.setBloodType(user.getBloodType()); 
       user1.add(newUser); 
      } 

      ArrayAdapter<User> adapter = new ArrayAdapter<User>(getActivity(),android.R.layout.simple_list_item_1,user1); 
      setListAdapter(adapter); 
     } 

我希望這有助於。歡呼:)

+0

vishnus什麼也沒有發生。它沒有顯示:( –