使用If作为规则调用类

时间:2015-07-29 12:50:46

标签: java android class if-statement android-activity

我是这个Android游戏的新手,我不知道如何从这一点开始。

我想将规则应用于按钮,这个想法很简单。我得到了这个按钮,当我按下它时,它有两个选项:它应该检查代码,如果它匹配,那么它启动一个Activity,如果没有,继续像往常一样。

如果它与数据库“相同”,则转到此新活动

否则它会继续滚动相同的类。

我也不知道如何继续执行这个类,如何调用它。

我接触到这段代码,但我不知道如何从这里开始。

那是我的代码:

public void Send(View view) throws IOException {
    BdLocal bd = new BdLocal(this);

    if (bd.getCodeCompany() == "0A0A0A0A0A0A0A") {     
        Intent intent = new Intent(NewCompanyCodeActivity.this, NewCompCodeSetup.class);
        startActivityForResult(intent, 0);
    } else {
        //i dont know how to put the cass SendHug here
        //Object.getClass(SendHug);?  
    }

    class SendHug extends AsyncTask<String, Void, String>{
        ...
    }

将此活动与班级分开工作

谢谢!

2 个答案:

答案 0 :(得分:0)

您需要像这样更改if条件。并在其他地方调用您的AsyncTask。

public void Send(View view) throws IOException {
        BdLocal bd = new BdLocal(this);
String text = bd.getCodeCompany();
        if ( text.equals( "0A0A0A0A0A0A0A")) {     
            Intent intent = new Intent(NewCompanyCodeActivity.this, NewCompCodeSetup.class);
            startActivityForResult(intent, 0);

        } else {
new SendHug().execute();

        }

答案 1 :(得分:0)

问题在于:bd.getCodeCompany() == "0A0A0A0A0A0A0A"

当您将两个String对象与==比较器进行比较时,您不是在比较它们的,而是在比较它们的Object相等性。 Java在同一内存位置检查它们是否确实是同一个对象。

在比较String字面值"0A0A0A0A0A0A0A"

时,这种情况永远不会成立

为了比较这些对象的,您应该在.equals()上调用String方法。

使用.equals()看起来像"0A0A0A0A0A0A0A".equals(bd.getCodeCompany())

通过调用String字面上的方法,如果NullPointerException可以返回bd.getCompany()值,则可以避免潜在的null

您可以致电sendHug,如:new SendHug().execute();