2015-09-06 79 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什么也没有发生。它没有显示:( –