Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/187.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 基于活动选择的关联用户_Java_Android_Android Layout_Android Activity_Parse Platform - Fatal编程技术网

Java 基于活动选择的关联用户

Java 基于活动选择的关联用户,java,android,android-layout,android-activity,parse-platform,Java,Android,Android Layout,Android Activity,Parse Platform,我正在使用Parse.com,希望设置一个条件,在该条件下,它将显示也选择了特定活动页面的用户列表。例如,我有一个由JSON数据填充的项目列表,每个项目都指向一个特定的页面。我想建立一个条件,将同时选择该特定活动页面的用户返回给当前用户 如果你需要更多的信息,请告诉我。 提前谢谢 更新: 这就是我迄今为止所尝试的。 我想在parse中创建一个名为activityname的列,当用户单击确认按钮时,活动名称就会被记录下来。然后在匹配活动中,它将填充活动名称列下活动名称相等的用户。对于匹配的代码,我

我正在使用Parse.com,希望设置一个条件,在该条件下,它将显示也选择了特定活动页面的用户列表。例如,我有一个由JSON数据填充的项目列表,每个项目都指向一个特定的页面。我想建立一个条件,将同时选择该特定活动页面的用户返回给当前用户

如果你需要更多的信息,请告诉我。 提前谢谢

更新: 这就是我迄今为止所尝试的。 我想在parse中创建一个名为activityname的列,当用户单击确认按钮时,活动名称就会被记录下来。然后在匹配活动中,它将填充活动名称列下活动名称相等的用户。对于匹配的代码,我考虑的是

var activitycompare = new Parse.Query("Activity Name");
activitycompare.equalTo('Activity Name', string);
在那条线附近。任何帮助或建议都会有帮助

更新2 非常感谢。 请告知修改后的代码,因为我意外收到以下错误:

userActivitySelectionName cannot be resolved to a variable
它基本上会看到哪些用户选择了特定的活动名称并返回它

  public class MatchingActivity extends Activity {

 private String currentUserId;
    private ArrayAdapter<String> namesArrayAdapter;
    private ArrayList<String> names;
    private ListView usersListView;
    private Button logoutButton;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.matching);

        logoutButton = (Button) findViewById(R.id.logoutButton);
        logoutButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                ParseUser.logOut();
                Intent intent = new Intent(getApplicationContext(), LoginActivity.class);
                startActivity(intent);
            }
        });

        setConversationsList();
    }

    private void setConversationsList() {
        currentUserId = ParseUser.getCurrentUser().getObjectId();
        names = new ArrayList<String>();


        ParseQuery<ParseUser> query = ParseUser.getQuery();
       query.whereNotEqualTo("objectId", currentUserId);
        query.whereEqualTo("ActivityName",userActivitySelectionName);

        query.findInBackground(new FindCallback<ParseUser>() {
            public void done(List<ParseUser> userList, ParseException e) {
                if (e == null) {
                    for (int i=0; i<userList.size(); i++) {
                        names.add(userList.get(i).getUsername().toString());
                    }

                    usersListView = (ListView)findViewById(R.id.usersListView);
                    namesArrayAdapter =
                        new ArrayAdapter<String>(getApplicationContext(),
                            R.layout.user_list_item, names);
                    usersListView.setAdapter(namesArrayAdapter);

                    usersListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                        @Override
                        public void onItemClick(AdapterView<?> a, View v, int i, long l) {
                            openConversation(names, i);
                        }
                    });

                } else {
                    Toast.makeText(getApplicationContext(),
                        "Error loading user list",
                            Toast.LENGTH_LONG).show();
                }
            }
        });
    }

    public void openConversation(ArrayList<String> names, int pos) {
        ParseQuery<ParseUser> query = ParseUser.getQuery();
        query.whereEqualTo("username", names.get(pos));
        query.findInBackground(new FindCallback<ParseUser>() {
           public void done(List<ParseUser> user, ParseException e) {
               if (e == null) {
                   Intent intent = new Intent(getApplicationContext(), MessagingActivity.class);
                   intent.putExtra("RECIPIENT_ID", user.get(0).getObjectId());
                   startActivity(intent);
               } else {
                   Toast.makeText(getApplicationContext(),
                       "Error finding that user",
                           Toast.LENGTH_SHORT).show();
               }
           }
        });
    }
}

如果要记录每个用户的单个活动,则可能会将其作为属性添加到user类中。正确的查询将出现在Android中:

var userQuery = ParseUser.getQuery();
userQuery.whereEqualTo("activityName", someString);
userQuery.findInBackground(new FindCallback<ParseUser>() {
  public void done(List<ParseUser> objects, ParseException e) {
    if (e == null) {
        // The query was successful.
    } else {
        // Something went wrong.
    }
  }
});

提供一些关于数据结构的信息,以及到目前为止您已经尝试过的内容。感谢您的及时回复。我在我最初的帖子的更新部分添加了更多信息。如果您能帮助我,我将非常感谢。根据错误,您使用了一个名为userActivitySelectionName的变量,该变量在上下文中不存在。。。您从何处读取此值?我随机添加了此变量,因为我想检索已选择该活动的usersname列表(currentuser除外)。我不想特别指出用户名,因为列表一直在变化,所以我想使用一个通用变量名,如UserActivitySelectionName谢谢您的帮助。到目前为止,它非常有用。因为我的活动是从JSON数据填充的,所以我考虑基于JSON字符串将它们关联起来。我在我的第一篇博文中包括了我2岁以下孩子的更新。