Android到很多if和else条件

时间:2014-12-20 10:31:00

标签: android if-statement conditional-statements

我使用共享首选项来保存用户页码。因此,当用户重新加载应用程序时,他们可以继续从他们中断的位置继续阅读。他们的方式我已经完成它的工作,但感觉凌乱,因为这将结束像400和if条件。有一个更好的方法吗。很多thx

@Override
public void onClick(View v) {
    // TODO Auto-generated method stub
        if (firstcheck.getText().toString().equals("")){
        SavePrefs("FIRST_CHECK", firstcheck.getText().toString());
        Intent myIntent = new Intent(SplashActivity.this, ConfigurationActivity.class);
        startActivity(myIntent);
        }else{
        if (firstcheck.getText().toString().equals("0")){
        Intent myIntent = new Intent(SplashActivity.this, BackgroundActivity.class);
        startActivity(myIntent);
        }else{
        if (firstcheck.getText().toString().equals("1")){
        Intent myIntent = new Intent(SplashActivity.this, Page1Activity.class);
        startActivity(myIntent);

2 个答案:

答案 0 :(得分:0)

我首选的处理方式是使用枚举。

public enum IfReplacement {
CASE_1("0") {

    public void handle(...) {
       //code for case "0" here.
    }

},
CASE_2("1") {

    public void handle(...) {
       //code for case "1" here
    }

};

    private static final Map<String, IfReplacement> VALUES;
    static {
       Map<String, IfReplacement> map = new HashMap<String, IfReplacement>();
       for(IfReplacement rep : IfReplacement.values()) {
          map.put(rep.key, rep);
       }
       VALUES = Collections.unmodifiableMap(map);
    }

    private final String key;

    private IfReplacement(String key) {
        this.key = key;
    }

    public abstract void handle(... your parameters here ...)

    public static void handle(String key, ... your parameters here ...) {
        IfReplacement handler = VALUES.get(key);
        if(handler != null) {
          handler.handle(...);
        } else {
           //error or default logic here
        }
    }

}

编辑:

此代码是在浏览器中编写的,因此可能包含一些拼写错误。但这个概念应该是明确的。

答案 1 :(得分:0)

为什么不在java中使用 switch-case ?因为它使用了许多if-else条件所起的相同功能?

这是关于switch-case的官方文档 http://docs.oracle.com/javase/tutorial/java/nutsandbolts/switch.html