Android / Java-将变量作为参数传递给方法

艾琳·B

我发现自己重复了相同的代码行,并且我想将其自动化。

我正在执行以下操作以更改视图中文本的颜色以与正确/不正确的答案相对应:

((CheckBox) findViewById(R.id.quiz_answer_2e)).setTextColor(Color.parseColor("#EE7674"));

我想传递参数,所以不必重复此操作,我更喜欢调用该函数并将参数设置为该函数,例如:

public void setCorrect(String viewType, String viewName, String thisColor) {
    if (thisColor.equals("red")) {
        thisColor = "#EE7674";
    } else {
        thisColor = "#9DBF9E";
    }
    ((**viewType**) findViewById(R.id.**viewName**)).setTextColor(Color.parseColor(**thisColor**));
}

其中viewTypeviewNamethisColor传递给方法。有没有办法做到这一点?

我尝试将值保存到字符串,但是无法确定如何从方法中运行该字符串。

提前致谢。

djbrown

我将基于以下因素重构您的方法:

  1. setTextColor(int color)在被定义TextView,并通过适用类,如遗传性EditTextCheckBoxButton等。
  2. 尽管您可以通过其标识符(例如This Question获得资源,但是您更有可能以这种方式遇到运行时错误。因此,我建议您将资源ID作为int
  3. 目前,您有正确/不正确(二进制)的颜色决策,因此请boolean使用易于解释的名称(例如)来设置参数a correct并使用该信息来标识颜色资源。

这将导致解决方案,例如:

public void setCorrect(int viewId, boolean correct) {
    int colorId = correct ? R.color.correct : R.color.incorrect;
    int color = ContextCompat.getColor(getApplicationContext(), colorId);
    ((TextView) findViewById(viewId)).setTextColor(color);
}

colors.xmlres/values看起来是这样的:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="correct">#9DBF9E</color>
    <color name="incorrect">#EE7674</color>
</resources>

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何将变量/参数传递给android view方法

我可以将数组作为参数传递给Java中具有可变参数的方法吗?

将类型参数作为类型参数的类传递给Java中的泛型方法

将方法作为Java方法的参数传递

将方法作为参数传递给Java中的另一种方法

将参数传递给Java方法

Java代码,将参数传递给方法

将异常作为参数传递给Java中的方法是否是错误的做法

将字段名称/类型作为参数传递给Java中的方法

将 null 作为 vararg 参数的一部分从 Kotlin 传递给 Java 方法

将列表数组作为参数传递给Android AsynTask

将未签名的变量作为Java中的引用传递给C dll中实现的方法

将Java脚本函数作为参数传递给C ++函数

将文档作为参数传递给Java中的XSL Translation

将函数作为参数传递给Lambda Java 8

Android 应用程序:将 Javascript 变量传递给原生 Java 变量

Android:将Java Surface传递给本机

将包含键值对的对象作为值传递给Java / Android中的哈希图

将 Java 变量传递给 jQuery 函数的 JavascriptExecutor 参数

java:将类作为自变量注入的参数传递

Retrofit 不会在 Android 的 PHP 后端将 Java 对象作为 POST 参数传递

有没有一种类型安全的方法将空列表作为参数传递给Java?

将参数传递给方法的Android数据绑定

Android NDK将参数传递给本机方法

Java:如何将动态数量的参数传递给方法

将方法和参数传递给Java中的函数

将构造函数参数传递给方法JAVA

将变量传递给JSP Java中的方法

将“ const”变量传递给Java中的方法