我有来自api的关于啤酒的简单应用程序数据集。 我想通过警告对话框来设置四个参数的方式,看起来我的方式有点原始和复杂,看起来像:
private String createFilteredUrl() {
String queryEndpoint = "?";
StringBuilder sb = new StringBuilder();
if(alcFromV != 0){
sb.append("abv_gt=" + alcFromV);
}
if(alcToV != 0){
sb.append("abv_lt=" + alcToV);
}
if(ibuFromV != 0){
sb.append("ibu_gt=" + ibuFromV);
}
if(ibuToV != 0){
sb.append("ibu_lt=" + ibuToV);
}
return queryEndpoint;
}
它只是部分完成,因为我认为这是非常低效的方式,并且开发了一些更简单的解决方案。在这里我应该重写if语句条件,因为如果用户跳过一个字段而不是忽略其中一个参数,依此类推,会有很多if语句,整个代码看起来不会很干净
所以,这是我应该用参数做我的请求的方式吗?
答案 0 :(得分:1)
将您的alcFromV
,alcToV
,ibuFromV
等放入数组中,将if语句替换为for或for-each语句,然后通过数组内容进行迭代。
仍然原始但不那么原始! ;)
答案 1 :(得分:1)
如果您使用的是Volley,那么为什么不使用其getParams()
覆盖方法
@Override
protected Map<String, String> getParams() throws AuthFailureError {
Map<String, String> params = new HashMap<>();
headerParams.put("key1", "val1");
headerParams.put("key2", "val2");
..............
return params;
}