安卓开发八——页面切换的关联
我们开始的页面是我们的所有条目所在的月份,所以我们要设计监听事件,当点击时就会切换到这个月的账单界面。
我们还要将这个月份的值带入下一个页面,然后根据这个值来插寻账本条目。
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { String itemDate=adapter.getItem(position); Intent intent=new Intent(monthActivity.this,MainActivity.class); intent.putExtra("date",itemDate); startActivity(intent); }
于是之前我们的查询语句也要进行修改,这里使用的时模糊查询,因为我们传入的是具体某年某月,我们要根据这个来输出账本中有的所有在这个月中的记录。
先在这个页面中取出这个值
Intent intent = getIntent();
month11 = intent.getStringExtra("date");
然后查询
SQLiteDatabase db=helper.getReadableDatabase();
Cursor cursor=db.query("account2",null,"Date like '"+month11+"%'",null,null,
null,null);
我们还要设计一个计算每月总和的元件放置在这个页面中
我们创建一个大数类,数据初始化为0,在我们进入这个页面时就会直接计算出来。
private void initData() { list=new ArrayList<>(); SQLiteDatabase db=helper.getReadableDatabase(); Cursor cursor=db.query("account2",null,"Date like '"+month11+"%'",null,null, null,null); BigDecimal sum=new BigDecimal(0); while (cursor.moveToNext()){ costList clist=new costList();//构造实例 BigDecimal temp=new BigDecimal(cursor.getString(cursor.getColumnIndex("Money"))); sum=sum.add(temp); clist.setSe(cursor.getString(cursor.getColumnIndex("Se"))); clist.set_id(cursor.getString(cursor.getColumnIndex("_id"))); clist.setTitle(cursor.getString(cursor.getColumnIndex("Title"))); clist.setDate(cursor.getString(cursor.getColumnIndex("Date"))); clist.setMoney(temp.toString()); list.add(clist); } //绑定适配器 listAdapter=new ListAdapter(this,list); listView.setAdapter(listAdapter); textView.setText(sum.toString()); db.close(); }
这个视图是一个横向的,所以我们要单独写一个xml文件来放置
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:orientation="horizontal" android:layout_height="50dp"> <TextView android:layout_width="180dp" android:layout_height="50dp" android:gravity="left" android:textSize="25sp" android:text=" 总计:" /> <TextView android:id="@+id/t_money" android:layout_width="wrap_content" android:layout_height="50dp" android:gravity="right|end" android:textSize="25sp" android:textColor="#ff0000" android:text=""/> <TextView android:layout_width="180dp" android:layout_height="50dp" android:gravity="left" android:textSize="25sp" android:text="(元)" /> </LinearLayout>
将它放入大布局的最底部
<include layout="@layout/total"/>
效果是这样
这样我们在主页面点击其中的月份就能进入对应的月份账本页面了。
点击页面下方的+就能添加信息了。