我使用共享首选项来保存用户页码。因此,当用户重新加载应用程序时,他们可以继续从他们中断的位置继续阅读。他们的方式我已经完成它的工作,但感觉凌乱,因为这将结束像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);
答案 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