检查Parse数据库中是否找到用户名和电子邮件

时间:2016-01-11 21:45:57

标签: java android performance parse-platform

在我的应用程序中,我有一个名为AddPatient的活动,此活动允许用户输入用户名或电子邮件,如果找到,则文本视图将显示文本"找到"别的"没找到"只要用户在数据库中找到了邮件和用户名,该按钮就会允许用户继续下一个活动。这是我的代码,但它一直给我发现,按钮不起作用....请帮忙。 请注意,此活动扩展了AppCompatActivity:

func heightForView(text:String, font:UIFont, width:CGFloat) -> CGFloat{
    let label:UILabel = UILabel(frame: CGRectMake(0, 0, width, CGFloat.max))
    label.numberOfLines = 0
    label.lineBreakMode = .ByTruncatingTail
    label.font = font
    label.text = text

    label.sizeToFit()
    return label.frame.height
}

override func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
    let post = FeedController.sharedController.allPosts[indexPath.row]
    var height = 16.0
    if post.hasImage {
        height += Double(self.view.frame.width) / (4/3)
    }

    let titleH = heightForView(post.title!, font: UIFont(name: "LiberationSerif-Bold", size: 20.0)!, width: self.tableView.bounds.width)
    let descH = heightForView(post.desc!, font: UIFont(name: "LiberationSerif", size: 17.0)!, width: self.tableView.bounds.width)

    let totalHeight = CGFloat(height+Double(titleH)+Double(descH))

    print("imageH: \(height), titleH: \(titleH) detailH: \(descH) totalH:\(totalHeight)")
    return totalHeight
}

2 个答案:

答案 0 :(得分:2)

您正在设置患者是否被发现使用if (true),这显然总是如此。您需要将其替换为检查输入值是否确实存在的内容。

答案 1 :(得分:0)

我想尝试这种方式。 首先设置此方法。 第一种方法。

ParseQuery<ParseObject> lotsOfWins =new ParseQuery<ParseObject>("User");
    lotsOfWins.whereEqualTo("email", email);

    ParseQuery<ParseObject> fewWins = new ParseQuery<ParseObject>("User");
    fewWins.whereEqualTo("username", username);

    List<ParseQuery<ParseObject>> queries = new ArrayList<ParseQuery<ParseObject>>();
    queries.add(lotsOfWins);
    queries.add(fewWins);

    ParseQuery<ParseObject> query = ParseQuery.or(queries);

    query.findInBackground(new FindCallback<ParseObject>() {
        @Override
        public void done(List<ParseObject> objects, ParseException e) {
            if (e == null) {
                if (objects.size() > 0) {
                    tv.setText("Patient found");
                } else {
                    tv.setText("Patient Not found");
                }
                getPatientInfo(tv.getText().toString());
            } else {
                // error
            }
        }
    });

第二种方法。

protected void getPatientInfo(String Result) {
    // TODO Auto-generated method stub

    if (Result == "Patient found") {
        Button fill = (Button) findViewById(R.id.button);

        fill.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent i = new Intent(AddPatient.this, Patients.class);
                startActivity(i);
            }
        });
    }
}

这种类型的findInBackGround是一种类型的线程。