zoukankan      html  css  js  c++  java
  • 随手记(五)

    现在介绍下关于记账界面代码: 
    BillsActivity.java,主要从数据库获得数据,并通过listview显示。常按能够删除账单条目。

    package com.bank;
    import android.app.Activity;
    import android.app.AlertDialog;
    import android.content.DialogInterface;
    import android.database.Cursor;
    import android.database.sqlite.SQLiteDatabase;
    import android.os.Bundle;
    import android.util.Log;
    import android.view.ContextMenu;
    import android.view.MotionEvent;
    import android.view.View;
    import android.widget.AdapterView;
    import android.widget.ImageView;
    import android.widget.ListView;
    import android.widget.SimpleAdapter;
    import android.widget.Toast;
    import java.util.ArrayList;
    import java.util.HashMap;
    public class BillsActivity extends Activity implements View.OnClickListener {
            //列举数据的ListView
            private ListView mlistbills;
            // 适配器
            private SimpleAdapter mlistbillsAdapter;
            //数据库
            private MySQLiteHelper mMysql;
            private SQLiteDatabase mDataBase;
            private ImageView imageviewback;
            // 存储数据的数组列表
            ArrayList<HashMap<String, Object>> listData = new ArrayList<HashMap<String, Object>>();
            public void onCreate(Bundle savedInstanceState) {
                    super.onCreate(savedInstanceState);
                    setContentView(R.layout.bills);
                    mlistbills = (ListView) this.findViewById(R.id.list_bills);
                    imageviewback = (ImageView) this.findViewById(R.id.imageviewBack);
                    imageviewback.setOnClickListener(this);
                    GetData();
                    mlistbillsAdapter = new SimpleAdapter(
                            this,
                            listData,
                            R.layout.billsitem,
                            new String[]{"Time", "Type", "Fee", "Remarks"},
                            new int[]{R.id.texttimeshow, R.id.imagetypeshow, R.id.textfeeshow, R.id.textremarksshow}
                    );
                    //赋予数据
                    mlistbills.setAdapter(mlistbillsAdapter);
                    //常按响应
                    mlistbills.setOnCreateContextMenuListener(listviewLongPress);
                    //点击事件
                    mlistbills.setOnTouchListener(onTouchListener);
            }
            View.OnTouchListener onTouchListener = new View.OnTouchListener() {
                    float x, y, ux, uy;
                    @Override
                    public boolean onTouch(View v, MotionEvent event) {
                            // TODO Auto-generated method stub
                            switch (event.getAction()) {
                                    case MotionEvent.ACTION_DOWN:
                                            x = event.getX();
                                            y = event.getY();
                                            break;
                                    case MotionEvent.ACTION_UP:
                                            ux = event.getX();
                                            uy = event.getY();
                                            int p2 = ((ListView)v).pointToPosition((int) ux, (int) uy);
    
                                            return false;
                            }
                            return false;
                    }
    
            };
    
            AdapterView.OnItemLongClickListener listviewLongClick = new AdapterView.OnItemLongClickListener() {
                    @Override
                    public boolean onItemLongClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
                            return false;
                    }
            };
                    AdapterView.OnItemClickListener listviewClick = new AdapterView.OnItemClickListener() {
                            @Override
                            public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
                                    Toast.makeText(getApplicationContext(),
                                            "weffwe", Toast.LENGTH_SHORT).show();
                            }
                    };
                    //从数据库获得适配器数据
                    public void GetData() {
                            mMysql = new MySQLiteHelper(this, "finance.db", null, 1);
                            mDataBase = mMysql.getReadableDatabase();
    
                            Cursor cursor = mDataBase.rawQuery("select * from finance order by ID DESC ", null);
                            cursor.moveToFirst();
                            int columnsSize = cursor.getColumnCount();
                            int number = 0;
                            while (number < cursor.getCount()) {
                                    //  cursor.move(i);
                                    HashMap<String, Object> map = new HashMap<String, Object>();
                                    String budget = cursor.getString(cursor.getColumnIndex("Budget"));
                                    map.put("ID", cursor.getString(cursor.getColumnIndex("ID")));
                                    map.put("Fee", cursor.getDouble(cursor.getColumnIndex("Fee")));
                                    map.put("Time", cursor.getString(cursor.getColumnIndex("Time")));
                                    if (budget.equals("收入"))
                                            map.put("Fee", "+" + cursor.getString(cursor.getColumnIndex("Fee")));
                                    else
                                            map.put("Fee", "-" + cursor.getString(cursor.getColumnIndex("Fee")));
                                    map.put("Remarks", cursor.getString(cursor.getColumnIndex("Remarks")));
    
                                    if ((cursor.getString(cursor.getColumnIndex("Type"))).equals("衣")) {
                                            map.put("Type", R.drawable.cloth);
                                    } else if ((cursor.getString(cursor.getColumnIndex("Type"))).equals("食")) {
                                            map.put("Type", R.drawable.shi);
                                    } else if ((cursor.getString(cursor.getColumnIndex("Type"))).equals("住")) {
                                            map.put("Type", R.drawable.zhu);
                                    } else if ((cursor.getString(cursor.getColumnIndex("Type"))).equals("行")) {
                                            map.put("Type", R.drawable.xing);
                                    } else if ((cursor.getString(cursor.getColumnIndex("Type"))).equals("其他")) {
                                            map.put("Type", R.drawable.getmoney);
                                    }
    
                                    cursor.moveToNext();
                                    listData.add(map);
                                    number++;
                                    System.out.println(listData);
                            }
    
                            cursor.close();
                            mDataBase.close();
                            mMysql.close();
                    }
    
                    @Override
                    public void onClick(View view) {
                            switch (view.getId()) {
                                    case R.id.imageviewBack:
                                            this.finish();
                                            break;
                                    default:
                                            break;
                            }
    
                    }
    
                    // 长按事件响应
                     View.OnCreateContextMenuListener listviewLongPress = new  View.OnCreateContextMenuListener() {
                            @Override
                            public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
                                    // TODO Auto-generated method stub
                                    final AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo) menuInfo;
    
                                    new AlertDialog.Builder(BillsActivity.this)
                        /* 弹出窗口的最上头文字 */
                                            .setTitle("删除当前数据")
                        /* 设置弹出窗口的图式 */
                                            .setIcon(android.R.drawable.ic_dialog_info)
                        /* 设置弹出窗口的信息 */
                                            .setMessage("确定删除当前记录")
                                            .setPositiveButton("是",
                                                    new DialogInterface.OnClickListener() {
                                                            public void onClick(
                                                                    DialogInterface dialoginterface, int i) {
                                                                    // 获取位置索引
                                                                    int mListPos = info.position;
                                                                    // 获取对应HashMap数据内容
                                                                    HashMap<String, Object> map = listData.get(mListPos);
                                                                    // 获取id
                                                                    int id = Integer.valueOf((map.get("ID").toString()));
    
                                                                    // 获取数组具体值后,可以对数据进行相关的操作,例如更新数据
                                                                    String[] whereArgs = new String[]{String.valueOf(id)};
                                                                    //获取当前数据库
                                                                    mMysql = new MySQLiteHelper(BillsActivity.this, "finance.db", null, 1);
                                                                    mDataBase = mMysql.getReadableDatabase();
                                                                    try {
                                                                            mDataBase.delete("Finance", "ID=?", whereArgs);
                                                                            listData.remove(mListPos);
                                                                            mlistbillsAdapter.notifyDataSetChanged();
                                                                    } catch (Exception e) {
                                                                            Log.e("删除出错了", "error");
                                                                    } finally {
                                                                            mDataBase.close();
                                                                            mMysql.close();
                                                                    }
                                                            }
                                                    }
                                            ).setNegativeButton(
                                            "否",
                                            new DialogInterface.OnClickListener() {
                                                    public void onClick(DialogInterface dialoginterface, int i) {
                                                    }
                                            }
                                    ).show();
    
                            }
                    };
            }

    RecorderActivity.java 
    主要功能是添加账目,记录自己的消费。

    package com.bank;
    import android.app.Activity;
    import android.app.DatePickerDialog;
    import android.content.ContentValues;
    import android.database.sqlite.SQLiteDatabase;
    import android.os.Bundle;
    import android.text.format.DateFormat;
    import android.view.View;
    import android.widget.AdapterView;
    import android.widget.ArrayAdapter;
    import android.widget.Button;
    import android.widget.DatePicker;
    import android.widget.EditText;
    import android.widget.ImageButton;
    import android.widget.RadioButton;
    import android.widget.RadioGroup;
    import android.widget.Spinner;
    import android.widget.TextView;
    import java.util.ArrayList;
    import java.util.Calendar;
    public class RecorderActivity extends Activity implements View.OnClickListener {
            private Button mbutton_sure, mbutton_cancel;
            private Spinner mspinner_type;
            private EditText  medittext_fee, medittext_remarks;
            private TextView  medittext_time;
            private RadioGroup mRadiogroup;
            private MySQLiteHelper mMysql;
            private SQLiteDatabase mDataBase;
            private ImageButton imageButtonBack;
            // 用来装日期的
            private Calendar calendar;
            //日历控件
            private DatePickerDialog dialog;
            //保存类型数据
            private String content_type, content_select_group;
            private ArrayList<String> Data = new ArrayList<String>();
            public void onCreate(Bundle savedInstanceState) {
                    super.onCreate(savedInstanceState);
                    setContentView(R.layout.recorder);
                    //获得控件
                    mbutton_sure = (Button) findViewById(R.id.plan_sure);
                    mbutton_cancel = (Button) findViewById(R.id.button_cancel);
                    medittext_time = (TextView) findViewById(R.id.edit_text_time);
                    medittext_fee = (EditText) findViewById(R.id.editText_fee);
                    medittext_remarks= (EditText) findViewById(R.id.editText_remarks);
                    mbutton_sure = (Button) findViewById(R.id.plan_sure);
                    mspinner_type= (Spinner) findViewById(R.id.spinner_type);
                    mRadiogroup = (RadioGroup) this.findViewById(R.id.radioGroup);
                    imageButtonBack= (ImageButton) this.findViewById(R.id.imageButtonBack);
                    //设置Spinner的数据并操作
                    ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this,
                            R.array.Select_item, android.R.layout.simple_spinner_item);
                   adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
                    //将数据和spinner控件绑定在一起
                    mspinner_type.setAdapter(adapter);
                    medittext_time.setOnClickListener(this);
                    imageButtonBack.setOnClickListener(this);
                    mspinner_type.setOnItemSelectedListener(listener);
                    mRadiogroup.setOnCheckedChangeListener(grouplistener);
                    mbutton_sure.setOnClickListener(this);
                    mbutton_cancel.setOnClickListener(this);
            }
            //单选按钮点击响应
            RadioGroup.OnCheckedChangeListener grouplistener = new RadioGroup.OnCheckedChangeListener() {
                    @Override
                    public void onCheckedChanged(RadioGroup arg0, int arg1) {
                            // TODO Auto-generated method stub
                            //获取变更后的选中项的ID
                            int radioButtonId = arg0.getCheckedRadioButtonId();
                            //根据ID获取RadioButton的实例
                            content_select_group = (((RadioButton) findViewById(radioButtonId)).getText()).toString();
                    }
            };
            //spinner控件的响应事件
            AdapterView.OnItemSelectedListener listener = new AdapterView.OnItemSelectedListener() {
                    public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
                            content_type = mspinner_type.getItemAtPosition(pos).toString();
                            //     Toast.makeText(getActivity(), "选中了"+content_type, Toast.LENGTH_LONG).show();
                    }
                    public void onNothingSelected(AdapterView<?> parent) {
                            // Another interface callback
                    }
            };
            //视图组件点击时间
            @Override
            public void onClick(View view) {
                    switch (view.getId()) {
                            case R.id.plan_sure:
                                    Data.clear();
                                    Data.add(content_type);
                                    Data.add(medittext_time.getText().toString());
                                    Data.add(medittext_fee.getText().toString());
                                    Data.add(medittext_remarks.getText().toString());
                                    Data.add(content_select_group);
                                    //    Toast.makeText(getActivity(), "click sure button" + Data, Toast.LENGTH_LONG).show();
                                    WriteData(Data);
                                    //   Toast.makeText(getActivity(), "click sure button" + Data, Toast.LENGTH_LONG).show();
                                    break;
                            case R.id.button_cancel:
                                    //     GetData()
                                    this.finish();
                                    break;
                            case R.id.imageButtonBack:
                                    this.finish();
                                    break;
                            case R.id.edit_text_time:
                                    calendar = Calendar.getInstance();
                                    dialog = new DatePickerDialog(
                                            this,
                                            new DatePickerDialog.OnDateSetListener() {
                                                    @Override
                                                    public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
                                                            calendar.set(year, monthOfYear, dayOfMonth);
                                                            medittext_time.setText(DateFormat.format("yyy-MM-dd", calendar));
                                                    }
                                            },
                                            calendar.get(Calendar.YEAR),
                                            calendar.get(Calendar.MONTH),
                                            calendar.get(Calendar.DAY_OF_MONTH)
                                    );
                                    dialog.show();
                                    break;
                            default:
                                    break;
                    }
    
            }
    
            public void WriteData(ArrayList<String> Data)
            {
                    mMysql = new MySQLiteHelper(this, "finance.db", null, 1);
                    mDataBase = mMysql.getReadableDatabase();
                    ContentValues cv=new ContentValues();
                    cv.put("Type",Data.get(0));
                    cv.put("Time",Data.get(1));
                    cv.put("Fee",Data.get(2));
                    cv.put("Remarks",Data.get(3));
                    cv.put("Budget",Data.get(4));
    
                    mDataBase.insert("finance", "Type", cv);
                    mDataBase.close();
                    mMysql.close();
                    //结束当前activity
                    this.finish();
            }
    }

    recordActivity布局:

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools" android:layout_width="fill_parent"
        android:layout_height="match_parent"
        android:background="#e2efd9"
        >
        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="50dp"
            android:id="@+id/linearLayout3"
            android:orientation="horizontal"
            android:layout_alignParentTop="true"
            android:layout_alignParentLeft="true"
            android:layout_alignParentStart="false"
            android:background="#444eb9"
            android:weightSum="1"
            android:gravity="center_vertical">
    
            <ImageButton
                android:layout_width="80dp"
                android:layout_height="30dp"
                android:id="@+id/imageButtonBack"
                android:src="@drawable/back"
                android:background="#444eb9"/>
    
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="记一笔"
                android:id="@+id/textView2"
                android:layout_gravity="center_vertical"
                android:background="#444eb9"
                android:layout_marginLeft="80dp"
                android:textColor="#FFFFFF"
                android:textStyle="bold"
                android:editable="false"
                android:enabled="false"
                android:hint="size"
                android:textIsSelectable="false"
                android:textSize="20dp"/>
        </LinearLayout>
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="类型"
                android:id="@+id/texttype"
    
                android:layout_gravity="center_horizontal"
                android:textStyle="bold"
                android:clickable="false"
                android:editable="false"
                android:textColor="#0472f8"
                android:layout_weight="0.00"
                android:layout_marginLeft="57dp"
                android:layout_marginStart="57dp"
                android:layout_marginTop="24dp"
                android:layout_below="@+id/radioGroup"
                android:layout_alignParentLeft="true"
                android:layout_alignParentStart="true"/>
    
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="时间"
                android:id="@+id/texttimeshow"
                android:layout_gravity="center_horizontal"
                android:textColor="#0472f8"
                android:layout_below="@+id/texttype"
                android:layout_toLeftOf="@+id/spinner_type"
                android:layout_toStartOf="@+id/spinner_type"
                android:layout_marginTop="44dp"/>
    
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="费用"
                android:id="@+id/textfeeshow"
                android:layout_gravity="center_horizontal"
                android:textColor="#0472f8"
                android:layout_marginTop="29dp"
                android:layout_below="@+id/edit_text_time"
                android:layout_toLeftOf="@+id/spinner_type"
                android:layout_toStartOf="@+id/spinner_type"/>
    
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="备注"
                android:id="@+id/textremarksshow"
                android:layout_gravity="center_horizontal"
                android:textColor="#0472f8"
                android:layout_marginTop="27dp"
                android:layout_below="@+id/editText_fee"
                android:layout_toLeftOf="@+id/spinner_type"
                android:layout_toStartOf="@+id/spinner_type"/>
    
            <Spinner
                android:layout_width="match_parent"
                android:layout_height="25dp"
                android:id="@+id/spinner_type"
                android:spinnerMode="dialog"
                android:entries="@array/Select_item"
                android:layout_alignBottom="@+id/texttype"
                android:layout_toRightOf="@+id/texttype"
                android:layout_marginLeft="43dp"
                android:layout_marginRight="50dp"
                android:gravity="center_vertical|center"
                android:paddingLeft="50dp"
                android:touchscreenBlocksFocus="false"
                android:layout_alignParentLeft="false"
                style="@android:style/TextAppearance.Holo"/>
    
            <TextView
                android:id="@+id/edit_text_time"
                android:layout_width="wrap_content"
                android:layout_height="40dp"
                android:background="@android:drawable/edit_text"
                android:layout_alignTop="@+id/texttimeshow"
                android:layout_alignLeft="@+id/spinner_type"
                android:layout_alignStart="@+id/spinner_type"
                android:layout_alignParentRight="true"
                android:layout_alignParentEnd="true"
                android:layout_marginRight="50dp"
                android:editable="true"
                android:gravity="center"
                android:textColor="#736bae"/>
    
            <EditText
                android:id="@+id/editText_fee"
                android:editable="true"
                android:layout_width="match_parent"
                android:layout_height="40dp"
                android:background="@android:drawable/edit_text"
                android:layout_alignTop="@+id/textfeeshow"
                android:layout_alignLeft="@+id/edit_text_time"
                android:layout_alignStart="@+id/edit_text_time"
                android:layout_marginRight="50dp"
                android:textColor="#fc0303"
                android:gravity="center"/>
            <EditText
                android:id="@+id/editText_remarks"
                android:layout_width="fill_parent"
                android:layout_height="94dp"
                android:inputType="textMultiLine"
                android:singleLine="false"
                android:gravity="left|top"
                android:width="2dip"
                android:background="@android:drawable/edit_text"
                android:layout_alignTop="@+id/textremarksshow"
                android:layout_alignLeft="@+id/editText_fee"
                android:layout_alignStart="@+id/editText_fee"
                android:layout_marginRight="50dp"
                android:textColor="#5e5b5b"
                android:textSize="15dp"/>
    
        <Button
                android:layout_width="50dp"
                android:layout_height="30dp"
                android:text="保存"
                android:id="@+id/plan_sure"
                android:background="@drawable/buttonshape"
                android:layout_below="@+id/editText_remarks"
                android:layout_alignLeft="@+id/texttype"
                android:layout_alignStart="@+id/texttype"
                android:layout_marginTop="36dp"
                android:layout_marginLeft="20dp"/>
    
            <Button
                android:layout_width="50dp"
                android:layout_height="30dp"
                android:text="取消"
                android:id="@+id/button_cancel"
                android:background="@drawable/buttonshape"
                android:layout_alignTop="@+id/plan_sure"
                android:layout_alignRight="@+id/editText_remarks"
                android:layout_alignEnd="@+id/editText_remarks"
                android:layout_marginRight="20dp"/>
    
        <RadioGroup
            android:layout_width="match_parent"
            android:layout_height="50dp"
            android:orientation="horizontal"
            android:gravity="center_vertical"
            android:id="@+id/radioGroup"
            android:layout_below="@+id/linearLayout3"
            android:layout_alignParentLeft="true"
            android:layout_alignParentStart="true"
            android:layout_marginTop="58dp">
    
            <RadioButton
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="收入"
                android:id="@+id/radioButton"
                android:checked="false"
                android:layout_below="@+id/linearLayout3"
                android:layout_alignLeft="@+id/texttimeshow"
                android:layout_alignStart="@+id/texttimeshow"
                android:layout_gravity="center_vertical"
                android:layout_marginLeft="50dp"/>
    
            <RadioButton
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="支出"
                android:id="@+id/radioButton2"
                android:checked="false"
                android:layout_alignBottom="@+id/radioGroup"
                android:layout_centerHorizontal="true"
                android:layout_marginLeft="50dp"/>
    
        </RadioGroup>
    
    </RelativeLayout>

                          

  • 相关阅读:
    viewport的故事(一)
    Laravel项目部署上线(阿里云 Ubuntu 16.04)
    Javascript数组方法总结
    html中编写js的方式
    js验证表单并提交
    html+css+js实现复选框全选与反选
    Cookie记住账号密码
    加密口令
    ASP.NET 在GridView中自动添加序号列
    ASP.NET使用递归遍历TreeView树
  • 原文地址:https://www.cnblogs.com/sailyw/p/7000811.html
Copyright © 2011-2022 走看看