相关疑难解决方法(0)

消除代码切换的方法

有什么方法可以消除代码中交换机的使用?

design-patterns

170
推荐指数
9
解决办法
12万
查看次数

可以在java中使用switch(java.lang.Object)吗?

我的应用程序需要具有类型的switch case语句String.

我需要这样的东西:

    Object list1 = "list1";
    Object list2 = "list2";
    Object list3 = "list3";

    Object option = "list1";
    switch (option) {
        case list1: // Do something
        case list2: // Do something
        case list3: // Do something
        default:    // Do something
    }
Run Code Online (Sandbox Code Playgroud)

有可能吗?

编辑:

是否更适合使用开关盒n而不是ifelse?一起使用?请评论一下?

java if-statement object switch-statement

11
推荐指数
1
解决办法
2万
查看次数

从Android中的ArrayAdapter访问资源

我定义了一些资源,例如:

<color name="lightGrey">#FFCCCCCC</color>
<integer name="KEY_POSITION_ARM">2</integer>
Run Code Online (Sandbox Code Playgroud)

...我有一个ArrayAdapter向TextViews显示项目.我正在尝试使用以下代码访问值:

keyPosition = getResources().getInteger(R.integer.KEY_POSITION_ARM);
moduleDataView.setTextColor(getResources().getColor(R.color.darkgreen));
Run Code Online (Sandbox Code Playgroud)

...但是我得到的错误是"方法getResources()未定义类型ContinuityAdapter".(ContinuityAdapter扩展ArrayAdapter)

这有什么好办法吗?

谢谢

这是一个例子:

switch (currentModule.keyPosition) {
case activity.getResources().getInteger(R.integer.KEY_POSITION_ARM):
    moduleDataView.keyPosition.setText("TEST");
    moduleDataView.keyPosition.setTextColor(Color.GREEN);
    break;
case R.integer.KEY_POSITION_ARM:
    moduleDataView.keyPosition.setText("ARM");
    moduleDataView.keyPosition.setTextColor(Color.RED);
    break;
}
Run Code Online (Sandbox Code Playgroud)

第一种情况给出错误,第二种情况不会,但也不使用XML文件中的值.虽然正如你所说,我可以只使用R ...值,只要我在任何地方使用它.只是不确定这是否被认为是"最佳实践".谢谢

java android android-arrayadapter

8
推荐指数
1
解决办法
1万
查看次数