現在のがそれらに関連付けられているさまざまなListView
のArray
またはを に入力したいと思います。これには現在のユーザーに対する何らかのクエリが必要だと思いますが、ロールを返す方法と、ロールをまたはに入力できる に返す方法がよくわかりません。これを使用して現在のユーザーを取得できることはわかっています:ArrayList
ParseRole
ParseUser
Array
ArrayList
ListView
ParseUser.getCurrentUser();
ただし、そこから、ユーザーに割り当てられた役割を確立する方法を見つけることができないようです。
編集:
私もこれを試してみました:
ParseQuery<ParseRole> query = ParseRole.getQuery();
query.whereEqualTo("users", ParseUser.getCurrentUser().getObjectId());
query.findInBackground(new FindCallback<ParseRole>() {
@Override
public void done(List<ParseRole> objects, ParseException e) {
if(e == null) {
Toast.makeText(getApplicationContext(), objects.size() + "", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(getApplicationContext(), "ERROR", Toast.LENGTH_SHORT).show();
}
}
});
しかし、私はまだそれに関連するものを動作させることができないようです. 「オブジェクト」のサイズがまだ常に0であるため、私は現在、考えられるすべてのことを試しましたが、実際にはどこにも行きません.
前もって感謝します!
答え:
Marius Falkenberg Waldal の回答の背後にあるロジックを実装し、それを Android に移植した後、最終的に自分の状況に合った解決策を得ることができました。将来誰かに役立つ場合に備えて、投稿することにしました。
ParseQuery<ParseRole> roleQuery = ParseRole.getQuery();
List<ParseRole> allRoles = null;
try {
allRoles = roleQuery.find();
} catch (ParseException e) {
e.printStackTrace();
}
userRoles = new ArrayList<ParseRole>();
userRolesNames = new ArrayList<String>();
for(ParseRole role : allRoles) {
ParseQuery usersQuery = role.getRelation("users").getQuery();
usersQuery.whereEqualTo("objectId", ParseUser.getCurrentUser().getObjectId());
try {
if(usersQuery.count() > 0) {
userRoles.add(role);
userRolesNames.add(role.getName().toString());
}
} catch (ParseException e) {
e.printStackTrace();
}
}
GroupAdapter adapter = new GroupAdapter(this, userRolesNames);
workspaces.setAdapter(adapter);