第184页
//创建OutaccountDAO对象
//获取所有支出信息,并存储到List泛型集合中
List listoutinfos=outaccountinfo.getScrollData(0, (int) outaccountinfo.getCount());
strInfos=new String[listoutinfos.size()]; //设置字符串数组的长度
int i=0; //定义一个开始标识
for (Tb_outaccount tb_outaccount:listoutinfos) { //遍历List泛型集合
//将支出相关信息组合成一个字符串,存储到字符串数组的相应位置
strInfos[i]=tb_outaccount.getid()+"|"+tb_outaccount.getType()+" "+String.valueOf(tb_outaccount. getMoney())+"元 "+tb_outaccount.getTime();
i++; //标识加1
}
break;
case R.id.btnininfo: //如果是btnininfo按钮
strType="btnininfo"; //为strType变量赋值
InaccountDAO inaccountinfo=new InaccountDAO(Showinfo.this); //创建InaccountDAO对象
//获取所有收入信息,并存储到List泛型集合中
List listinfos=inaccountinfo.getScrollData(0, (int) inaccountinfo.getCount());
strInfos=new String[listinfos.size()]; //设置字符串数组的长度
int m=0; //定义一个开始标识
for (Tb_inaccount tb_inaccount:listinfos) { //遍历List泛型集合
//将收入相关信息组合成一个字符串,存储到字符串数组的相应位置
strInfos[m]=tb_inaccount.getid()+"|"+tb_inaccount.getType()+" "+String.valueOf(tb_inaccount. getMoney())+"元 "+tb_inaccount.getTime();
m++; //标识加1
}
break;
case R.id.btnflaginfo: //如果是btnflaginfo按钮
strType="btnflaginfo"; //为strType变量赋值
FlagDAO flaginfo=new FlagDAO(Showinfo.this); //创建FlagDAO对象
//获取所有便签信息,并存储到List泛型集合中
List listFlags=flaginfo.getScrollData(0, (int) flaginfo.getCount());
strInfos=new String[listFlags.size()]; //设置字符串数组的长度
int n=0; //定义一个开始标识
for (Tb_flag tb_flag:listFlags) { //遍历List泛型集合
//将便签相关信息组合成一个字符串,存储到字符串数组的相应位置
strInfos[n]=tb_flag.getid()+"|"+tb_flag.getFlag();
if(strInfos[n].length()>15) //判断便签信息的长度是否大于15
//将位置大于15之后的字符串用"……"代替
strInfos[n]=strInfos[n].substring(0,15)+"……";
n++; //标识加1
}
break;
}
//使用字符串数组初始化ArrayAdapter对象
arrayAdapter=new ArrayAdapter(this, android.R.layout.simple_list_item_1, strInfos);
lvinfo.setAdapter(arrayAdapter); //为ListView列表设置数据源
}
15.11.6 单击指定项时打开详细信息
当用户单击ListView列表中的某条便签记录时,为其设置监听事件,在监听事件中,根据单击的便签信息的编号,打开相应的Activity,代码如下:
lvinfo.setOnItemClickListener(new OnItemClickListener() //为ListView添加项单击事件
{
//覆写onItemClick()方法
@Override
public void onItemClick(AdapterView> parent, View view, int position, long id)
{
String strInfo=String.valueOf(((TextView) view).getText()); //记录单击的项信息
String strid=strInfo.substring(0, strInfo.indexOf('|')); //从项信息中截取编号
Intent intent = null; //创建Intent对象
if (strType=="btnoutinfo" | strType=="btnininfo") { //判断如果是支出或者收入信息
intent=new Intent(Showinfo.this, InfoManage.class); //使用InfoManage窗口初始化Intent对象
intent.putExtra(FLAG, new String[]{strid,strType}); //设置要传递的数据
}
else if (strType=="btnflaginfo") { //判断如果是便签信息
intent=new Intent(Showinfo.this, FlagManage.class); //使用FlagManage窗口初始化Intent对象
intent.putExtra(FLAG, strid); //设置要传递的数据
}
startActivity(intent); //执行Intent,打开相应的Activity
}
});
15.11.7 设计修改/删除便签布局文件
修改/删除便签信息窗体运行效果如图15.17所示。
图15.17 修改/删除便签信息
在res\layout目录下新建一个flagmanage.xml文件,用来作为修改、删除便签信息窗体的布局文件,该布局文件使用LinearLayout结合RelativeLayout进行布局,在该布局文件中添加两个TextView组件、一个EditText组件和两个Button组件,实现代码如下: