【问题标题】:Call class using If as rule使用 If 作为规则调用类
【发布时间】:2015-07-29 12:50:46
【问题描述】:

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

我想对按钮应用规则,想法很简单。我得到了这个按钮,当我按下它时,它有两个选项:它应该检查代码,如果匹配则启动一个 Activity,如果不匹配,则照常进行。

如果与数据库“相同”,则转到这个新的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>{
        ...
    }

将此活动和班级分开工作正常

谢谢!

【问题讨论】:

  • @KevinEsche 的 Sting 比较是不确定的,但这不是问题的核心,所以可能不是重复
  • 使用new 运算符实例化一个新的 SendHug 实例。

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


【解决方案1】:

问题出在这里:bd.getCodeCompany() == "0A0A0A0A0A0A0A"

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

在比较 String 文字(例如 "0A0A0A0A0A0A0A")时,这永远不会正确

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

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

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

您可以拨打sendHug 喜欢:new SendHug().execute();

【讨论】:

  • 应用你与我分享的知识,它有效。谢谢!
【解决方案2】:

您需要像这样更改 if 条件。并在 else 中调用你的 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();

        }

【讨论】:

  • 谢谢!这正是我需要的代码!谢谢!它有效!
猜你喜欢
  • 2019-04-16
  • 2012-01-28
  • 1970-01-01
  • 2021-01-31
  • 1970-01-01
  • 2022-06-18
  • 2017-03-15
  • 2019-11-04
  • 2018-11-15
相关资源
最近更新 更多