2016-11-22 8 views
-1

ユーザーがログインしているかオンラインであるかを知るアプリケーションを作成しています。だから最初に登録した人たちのリストビューを持っています。これは私のサンプルコードでは、非常に多くのユーザーがパーズでオンライン/ログインしているかどうかを確認するには?

query.findInBackground(new FindCallback<ParseUser>() { 
    @Override 
    public void done(List<ParseUser> objects, ParseException e) { 
     if (e == null) { 
      if (objects.size() > 0) { 
       for (ParseUser user : objects) { 
        usernames.add(user.getUsername()); 
       } 
       userListView.setAdapter(adapter); 
       // i want to add here like if(usernames.isOnline()) 
       // then the image adapter of list view will change to green 
       // instead of transparent 
      } 
     } else { 
      e.printStackTrace(); 
     } 
    } 
}); 

おかげです。私は、オンライン/オフラインのユーザーの一覧が必要です。あなたが教えてくれる全てのチュートリアルに感謝します。

+0

おそらく存在しません。あなたができることは、最後のアクションのタイムスタンプを持っていて、1分未満のユーザーがオンラインであれば、それ以上のことはできないと思います。 –

答えて

0

私はonResume()とonDestroy

private void updateUserStatus(boolean online) { 
    user.put("online", online); 
    user.saveEventually(); 
} 

@Override 
protected void onDestroy() { 
    super.onDestroy(); 
    updateUserStatus(false); 
} 

@Override 
public void onResume() { 
    super.onResume(); 
    loadUserList(); 
} 

public void loadUserList() { 
    ParseUser.getQuery().whereNotEqualTo("username", user.getUsername()) 
      .findInBackground(new FindCallback<ParseUser>() { 
       @Override 
       public void done(List<ParseUser> li, ParseException e) { 
        if (li != null) { 
         if (li.size() == 0) { 
          Toast.makeText(getApplicationContext(), 
            "No users found.", Toast.LENGTH_LONG) 
            .show(); 

          uList = new ArrayList<ParseUser>(li); 
          ListView list = (ListView) findViewById(R.id.userListView); 
          list.setAdapter(new UserAdapter()); 
         } 
        } 
       } 
      }); 

} 

を使用して、アダプタクラスで私の解決策を持って、イメージがオフに設定され、ユーザーがオンラインかそうでないのならば。ありがとうございました。

0

あなたは代わりに、クエリの

ParseUser.getCurrentUser() 

を試みることができます。

+0

私は思います彼はすべてのユーザーのリストを表示しようとしています。また、接続されている状態/接続されていない状態を望みます。 – litelite

+0

あなたは正しいliteliteです。私が欲しいものを説明してくれてありがとう。 –

+0

アダプタのitem onBindメソッドで、ユーザを 'ParseUser.getCurrentUser()'と比較し、必要に応じてバックグラウンドを調整します。 –

関連する問題