项目中碰到的一些比较经典的业务逻辑案例,不定时更新

一、客户需求:用列表展示一些数据,数据结构有选择框(有Y/N两种状态)、编辑框(可以输入内容),

1、通过按钮控制页面选择框的显示

2、输入框多行显示

3、列表某一行可能是 标题+选择框,也有可能只是输入框

4、点击确定按钮提交最终处理结果(选择框状态对应的数据,输入框中的数据)

分析:

1、列表显示可以采取ListView/RecycleView

2、列表item显示的内容可以采取View.GONE/VIEWABLE的方式展示

3、数据处理:从服务端请求的数据会有个tag,用来区分item显示checkbox还是edittext,首先用一个集合存放所有的数据,我们可以创建两个集合(checkBoxEntityList 装选择框对应的entity的集合  editTextEntityList 装编辑框对应的entity的聚合)来装分别装相应的数据,然后在Adapter中处理checkbox的点击事件,将选择框对应的数据存起来用checkBoxEntityList存起来,

4、最后提交的时候讲两个集合重新合并,转换为String类型,一起传递给服务器


添加一些图片用来说明下:

数据结构:

项目中碰到的一些比较经典的业务逻辑案例,不定时更新_第1张图片


注:"maintainitemtypeid"该字段用来区分checkbox还是edittext



提交数据到服务器,需要给服务器传递的参数:

项目中碰到的一些比较经典的业务逻辑案例,不定时更新_第2张图片


请求参数中List 要将其转换为String

/*-----------将最后处理的集合转换为String-----------*/
		String checkresult  = null;
		Gson gson =new Gson();
		
		if (finalEntityList!= null  && finalEntityList.size() > 0) {
			for (int i = 0; i < finalEntityList.size(); i++) {
				if (i == 0) {
					checkresult = gson.toJson(finalEntityList.get(i));	
				} else {
					checkresult = gson.toJson(finalEntityList.get(i))+","+checkresult;
				}
			}
		}



最后提交数据:

finalEntityList = new ArrayList();
		finalEntityList.addAll(checkBoxEntityList );
		finalEntityList.addAll(editTextEntityList );
		
		Log.i("checkBoxEntityList ", checkBoxEntityList );
		Log.i("editTextEntityList ", editTextEntityList );
		Log.i("finalEntityList", finalEntityList);
		
		/*-----------将最后处理的集合转换为String-----------*/
		String checkresult  = null;
		Gson gson =new Gson();
		
		if (finalEntityList!= null  && finalEntityList.size() > 0) {
			for (int i = 0; i < finalEntityList.size(); i++) {
				if (i == 0) {
					checkresult = gson.toJson(finalEntityList.get(i));	
				} else {
					checkresult = gson.toJson(finalEntityList.get(i))+","+checkresult;
				}
			}
		}
		Log.i("checkresult", checkresult);


最后:需求代码实现起来不难,难点在于业务逻辑,所以编程思想很重要。

记录一下









你可能感兴趣的:(Android开发)