Household account book version of Android development: the fourth day

First, the results show

 

 Account named Zhang Zhiwei, login

 

 View accounts

 

 

 This is the data of the database

 

 

 

 Second, summary

Learning BaseAdapter adapter to the query to the number of data pieces of the number of lines of the form, layout and implementation code linkage.

Third, part of the original code

QueryAllActivity.java

package com.example.familybook;

import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Intent;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.os.Bundle;
import android.util.Log;
import android.widget.ArrayAdapter;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.ScrollView;
import android.widget.TextView;

import androidx.annotation.Nullable;

import com.example.familybook.dao.BillDaoImpl;
import com.example.familybook.dao.IBillDao;
import com.example.familybook.entity.Bill;
import com.example.familybook.utils.ShowBillsAdapter;
import com.example.familybook.utils.ViewHolder;

import java.util.List;

public class QueryAllActivity extends Activity {
    private String mUsername;
    private String TAG="QueryAllActivity";
    private List <Bill> mShowBills;
    private List <ViewHolder> mViewHolder;
    private IBillDao mIBillDao;
    private SQLiteOpenHelper mBillDatabaseHelper;

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_list);
        this.setTitle("总览账目信息");

        //获取登录者的用户名
        Intent intent =getIntent();
        mUsername =intent.getStringExtra("username");
        Log.e(TAG,"使用者:"+mUsername);

        //初始化控件
        initView();

        //获取表格布局
        ListView ShowBillList=(ListView)findViewById(R.id.list_View);

        //获取从数据库获得的表单
        mShowBills=mIBillDao.listAllBill(mUsername);

        //新建并配置Show
        ShowBillsAdapter  ShowAdapter=new ShowBillsAdapter(mShowBills,this);
        ShowBillList.setAdapter(ShowAdapter);
        //添加事件监听
        initListener();
    }




    private void initListener() {


    }

    private void initView() {
        mIBillDao =new BillDaoImpl(QueryAllActivity.this);

    }
}

ShowBillsAdapter.java

package com.example.familybook.utils;
/**
 * 这是查看总览账目的列表帮助类
 */

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;

import com.example.familybook.R;
import com.example.familybook.entity.Bill;

import java.util.List;

public class ShowBillsAdapter extends BaseAdapter {
    private List<Bill> mList;
    private Context mContext;
    private LayoutInflater mLayoutInflater;

    public ShowBillsAdapter(List<Bill> mList, Context mContext) {
        this.mList = mList;
        this.mContext = mContext;
        this.mLayoutInflater = LayoutInflater.from(mContext);
    }

    /**
     * 返回适配器中数据集中的个数
     * @return
     */
    @Override
    public int getCount() {
        return mList.size();
    }

    /**
     * 获取数据数据集中与指定索引对应的数据项
     * @param position
     * @return
     */
    @Override
    public Object getItem(int position) {
        return mList.get(position);
    }

    /**
     * 获取指定行对应的ID
     * @param position
     * @return
     */
    @Override
    public long getItemId(int position) {
        return position;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        ViewHolder viewHolder;
        if(convertView==null){
            /**
             * 将表单的标题与布局中的控件对应起来
             */
            viewHolder=new ViewHolder();
            convertView=mLayoutInflater.inflate(R.layout.activity_queryallbill,null);
            viewHolder.mBillType=(TextView)convertView.findViewById(R.id.show_bill_type);
            viewHolder.mBillMoney=(TextView)convertView.findViewById(R.id.show_bill_money);
            viewHolder.mBillDate=(TextView)convertView.findViewById(R.id.show_bill_date);
            convertView.setTag(viewHolder);
        }else {
            viewHolder=(ViewHolder)convertView.getTag();
        }

        //获取一个bill实体类,将bill的数据封装到表格的内容中

        Bill bill=mList.get(position);
        //这里获取数据返回给布局
        viewHolder.mBillType.setText(bill.getType());
        viewHolder.mBillMoney.setText(bill.getMoney());
        viewHolder.mBillDate.setText(bill.getDate());
        return convertView;
    }
}

ViewHolder.java

package com.example.familybook.utils;
/**
 * 这是一个表单标题类
 */

import android.widget.TextView;

public class ViewHolder {
    public TextView mBillType;
    public TextView mBillMoney;
    public TextView mBillDate;
}

activity_list.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:background="@mipmap/queryallbill"
    android:layout_height="match_parent">

    <ListView
        android:id="@+id/list_View"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

    </ListView>

</LinearLayout>

activity_queryallbill.xml

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">


    <RelativeLayout
        android:id="@+id/query_all_bill"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_marginTop="30dp"
        android:orientation="vertical"
        tools:context=".QueryAllActivity" >
        <TextView
            android:id="@+id/show_bill_type"
            android:text="账目类型"
            android:textSize="30dp"
            android:gravity="center"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"/>
        <TextView
            android:id="@+id/show_bill_money"
            android:layout_width="wrap_content"
            android:text="账目金额"
            android:textSize="30dp"
            android:layout_marginLeft="20dp"
            android:layout_toRightOf="@+id/show_bill_type"
            android:layout_height="wrap_content"/>
        <TextView
            android:id="@+id/show_bill_date"
            android:layout_width="wrap_content"
            android:text="账目日期"
            android:textSize="30dp"
            android:layout_marginLeft="20dp"
            android:layout_toRightOf="@id/show_bill_money"
            android:layout_height="wrap_content"/>
    </RelativeLayout>


</ScrollView>

 

Guess you like

Origin www.cnblogs.com/yeyueweiliang/p/12301071.html