安卓开发八——页面切换的关联

我们开始的页面是我们的所有条目所在的月份,所以我们要设计监听事件,当点击时就会切换到这个月的账单界面。

我们还要将这个月份的值带入下一个页面,然后根据这个值来插寻账本条目。

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"/>

效果是这样

这样我们在主页面点击其中的月份就能进入对应的月份账本页面了。

点击页面下方的+就能添加信息了。

posted @ 2024-02-03 19:23  伐木工熊大  阅读(7)  评论(0编辑  收藏  举报