java - 输入 if 和 else 语句?

标签 java android android-emulator

所以我得到了这段代码(针对解决方案进行了更新)。

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        ...
        final Direction d = directions.get(position);
        if (d != null) {

            TextView direction = (TextView) row.getTag(R.id.directionTextView);
            TextView departure1 = (TextView) row.getTag(R.id.departure1);
            TextView departure2 = (TextView) row.getTag(R.id.departure2);
            TextView departure3 = (TextView) row.getTag(R.id.departure3);

            direction.setText(d.getName());

            if (d.getTimeStamps().size() == 0) {
                departure1.setText(R.string.nodepartures);
                departure1.setTextColor(R.color.grey);
            } else {
                for (int i = 0; i < d.getTimeStamps().size(); i++) {
                    switch (i) {
                    case 0:
                        departure1.setText(d.getTimeStamps().get(i));
                        break;
                    case 1:
                        departure2.setText(d.getTimeStamps().get(i));
                        break;
                    case 2:
                        departure3.setText(d.getTimeStamps().get(i));
                        break;
                    default:
                        break;
                    }
                }
            }
        }
        return row;
    }
}

我遇到的问题是其中一个 TextView 会在不应该的情况下变成灰色。我尝试通过始终将文本再次设置为黑色来修复它,但这将它们中的每一个都变成了灰色。直到我尝试:

setTextColor(context.getResources().getColor(R.color.black));

不仅仅是

setTextColor(R.color.black);

不知道为什么后者在将文本设置为灰色时起作用,但确实如此。我想我只是有点迟钝。 :)

最佳答案

您认为正在发生的事情根本不可能发生(***)。你需要做的是向自己证明它没有发生。

我会通过在代码中添加一些痕迹来做到这一点。一个放在 if 语句之前,一个放在“then”和“else”子句的开头,一个放在 if 语句之后。然后运行它。我希望这会揭示 if 语句实际上运行了两次,第一次运行“then”子句,第二次运行“else”子句。

(*理论上,如果模拟器中存在严重错误,则可能会发生这种情况。但只有在您有确凿证据时,才应考虑这种可能性。)

(** 另一种可能性是上面的示例代码与您正在测试的实际代码之间可能存在显着差异。这种情况发生了......)

关于java - 输入 if 和 else 语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3292337/

相关文章:

java - 将扑克牌数组列表中的所有数值相加

java - JPA 验证独特

android - 华为 EMUI 4.0+ 上的电池优化(唤醒锁)

android - 如何在Android模拟器上模拟速度?

android - 无法在模拟器中读取SD卡中的文件

java - 如何找到网站的平均加载时间?

java - 如何检测用户是否启用了自动亮度?

android - 我的 Android 应用程序出现重复输入错误

java - 如何从非资源文件中解析xml

android - 是否有 Android 模拟器 AVD 的存储库?