Android案例之商品展示

来源:互联网 发布:数控车削编程实例 编辑:程序博客网 时间:2024/04/30 11:17

运行效果图如下:


2.效果图实现代码

创建布局文件activity_msin.xml

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:id="@+id/activity_main"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical"    android:layout_margin="8dp"    tools:context="com.example.bzu.product.MainActivity">    <LinearLayout        android:id="@+id/addLl"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:orientation="horizontal">     <EditText       android:id="@+id/nameEt"       android:layout_width="0dp"       android:layout_height="wrap_content"       android:layout_weight="1"       android:hint="商品名称"       android:inputType="textPersonName"/>     <EditText         android:id="@+id/balanceEt"         android:layout_width="0dp"         android:layout_height="wrap_content"         android:layout_weight="1"         android:hint="金额"         android:inputType="number"/>     <ImageView         android:onClick="add"         android:id="@+id/addIv"         android:layout_width="wrap_content"         android:layout_height="wrap_content"         android:src="@android:drawable/ic_input_add"         />    </LinearLayout>    <ListView        android:layout_width="match_parent"        android:layout_height="match_parent"        android:id="@+id/accountlv"        android:layout_below="@+id/addLl"></ListView></LinearLayout>
创建ListView Item布局

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="wrap_content"    android:orientation="horizontal"    android:padding="10dp">    <TextView        android:id="@+id/idTv"        android:layout_width="0dp"        android:layout_height="wrap_content"        android:layout_weight="1"        android:text="0"        android:textSize="20sp"        android:textColor="#000000"        />    <TextView        android:id="@+id/nameTv"        android:layout_width="0dp"        android:layout_height="wrap_content"        android:layout_weight="2"        android:text="毛巾"        android:singleLine="true"        android:textColor="#000000"        android:textSize="20sp"/>    <TextView        android:id="@+id/balanceTv"        android:layout_width="0dp"        android:layout_height="wrap_content"        android:layout_weight="2"        android:singleLine="true"        android:textColor="#000000"        android:text="12345"        android:textSize="20sp"/>    <LinearLayout        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:orientation="vertical">      <ImageView        android:id="@+id/upIv"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:src="@android:drawable/arrow_up_float"/>      <ImageView            android:id="@+id/downIv"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:src="@android:drawable/arrow_down_float"/>    </LinearLayout>    <ImageView        android:id="@+id/deleteIv"        android:layout_width="25dp"        android:layout_height="25dp"        android:src="@android:drawable/ic_menu_delete"/></LinearLayout>
创建数据库

package com.example.bzu.product.dao;import android.content.Context;import android.database.sqlite.SQLiteDatabase;import android.database.sqlite.SQLiteOpenHelper;/** * Created by Administrator on 2017/4/17. */public class MyHelper extends SQLiteOpenHelper{    public MyHelper(Context context) {        super(context,"dpl.db", null, 1);    }    @Override    public void onCreate(SQLiteDatabase db) {        db.execSQL("create table account(_id integer primary key autoincrement ,name varchar(20),balance integer)");    }    @Override    public void onUpgrade(SQLiteDatabase db, int i, int i1) {    }}
创建一个Account类

package com.example.bzu.product.bean;/** * Created by Administrator on 2017/4/17. */public class Account {    private Long id;    private String name;    private Integer balance;    public Long getId() {        return id;    }    public void setId(Long id) {        this.id = id;    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public Integer getBalance() {        return balance;    }    public void setBalance(Integer balance) {        this.balance = balance;    }    public Account(String name, Integer balance) {        super();        this.name = name;        this.balance = balance;    }    public Account(Long id,String name, Integer balance) {        super();        this.id=id;        this.name = name;        this.balance = balance;    }    public Account(){        super();    }    @Override    public String toString() {        return "[序号:"+ id +", 商品名称" + name +                ", 余额" + balance + "]";    }}
创建土匪AccountDao类操作数据

package com.example.bzu.product.dao;import android.content.ContentValues;import android.content.Context;import android.database.Cursor;import android.database.sqlite.SQLiteDatabase;import com.example.bzu.product.bean.Account;import java.util.ArrayList;import java.util.List;/** * Created by Administrator on 2017/4/17. */public class AccountDao {    private MyHelper helper;    public AccountDao(Context context){        helper=new MyHelper(context);    }    public void insert(Account account){        SQLiteDatabase db=helper.getWritableDatabase();        ContentValues values=new ContentValues();        values.put("name",account.getName());        values.put("balance",account.getBalance());        long id=db.insert("account",null,values);        account.setId(id);        db.close();    }    public int delete(long id){        SQLiteDatabase db=helper.getWritableDatabase();        int count=db.delete("account","_id=?",new String[]{id+""});        db.close();        return count;    }    public int update(Account account){        SQLiteDatabase db=helper.getWritableDatabase();        ContentValues values=new ContentValues();        values.put("name",account.getName());        values.put("balance",account.getBalance());        int count=db.update("account",values,"_id=?",new String[]{account.getId()+""});        db.close();        return count;     }    public List<Account> queryAll(){        SQLiteDatabase db=helper.getReadableDatabase();        Cursor cursor=db.query("account",null,null,null,null,null,"balance DESC");        List<Account> list=new ArrayList<Account>();        while(cursor.moveToNext()){            long id=cursor.getLong(cursor.getColumnIndex("_id"));            String name=cursor.getString(1);            int balance=cursor.getInt(2);            list.add(new Account(id,name,balance));        }        cursor.close();        db.close();        return list;    }}
界面交换代码

package com.example.bzu.product;import android.content.DialogInterface;import android.support.v7.app.AlertDialog;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.view.ViewGroup;import android.widget.AdapterView;import android.widget.BaseAdapter;import android.widget.EditText;import android.widget.ImageView;import android.widget.ListView;import android.widget.TextView;import android.widget.Toast;import com.example.bzu.product.bean.Account;import com.example.bzu.product.dao.AccountDao;import java.util.List;public class MainActivity extends AppCompatActivity {    private List<Account> list;    private AccountDao dao;    private EditText nameEt;    private EditText balanceEt;    private MyAdapter adapter;    private ListView accountLv;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        initView();        dao=new AccountDao(this);        list=dao.queryAll();        adapter=new MyAdapter();        accountLv.setAdapter(adapter);    }    private void initView(){        accountLv=(ListView)findViewById(R.id.accountlv);        nameEt=(EditText)findViewById(R.id.nameEt);        balanceEt=(EditText)findViewById(R.id.balanceEt);        accountLv.setOnItemClickListener(new MyOnItemClickListener());    }    public void add(View view){        String name=nameEt.getText().toString().trim();        String balance=balanceEt.getText().toString().trim();        Account account=new Account(name,balance.equals("")?0:Integer.parseInt(balance));        dao.insert(account);        list.add(account);        adapter.notifyDataSetChanged();        accountLv.setSelection(accountLv.getCount()-1);        nameEt.setText("");        balanceEt.setText("");    }    private class MyAdapter extends BaseAdapter{        @Override        public int getCount() {            return list.size();        }        @Override        public Object getItem(int position) {            return list.get(position);        }        @Override        public long getItemId(int position) {            return position;        }        @Override        public View getView(int position, View convertView, ViewGroup parent) {            View item=convertView!=null?convertView:View.inflate(getApplicationContext(),R.layout.item,null);            TextView idTv=(TextView)item.findViewById(R.id.idTv);            TextView nameTv=(TextView)item.findViewById(R.id.nameTv);            TextView balanceTv=(TextView)item.findViewById(R.id.balanceTv);            final Account account=list.get(position);            idTv.setText(account.getId()+"");            nameTv.setText(account.getName());            balanceTv.setText(account.getBalance()+"");            ImageView upTv=(ImageView)item.findViewById(R.id.upIv);            ImageView downTv=(ImageView)item.findViewById(R.id.downIv);            ImageView deleteTv=(ImageView)item.findViewById(R.id.deleteIv);            upTv.setOnClickListener(new View.OnClickListener() {                @Override                public void onClick(View v) {                    account.setBalance(account.getBalance()+1);                    notifyDataSetChanged();                    dao.update(account);                }            });            downTv.setOnClickListener(new View.OnClickListener() {                @Override                public void onClick(View v) {                    account.setBalance(account.getBalance()-1);                    notifyDataSetChanged();                    dao.update(account);                }            });            deleteTv.setOnClickListener(new View.OnClickListener() {                @Override                public void onClick(View v) {                    android.content.DialogInterface.OnClickListener listener=new android.content.DialogInterface.OnClickListener(){                       public void onClick(DialogInterface dialog,int which){                            list.remove(account);                            dao.delete(account.getId());                            notifyDataSetChanged();                        }                    };                    AlertDialog.Builder builder=new AlertDialog.Builder(MainActivity.this);                    builder.setTitle("确定要删除吗?");                    builder.setPositiveButton("确定",listener);                    builder.setNegativeButton("取消",null);                    builder.show();                }            });            return item;        }    }    private class MyOnItemClickListener implements AdapterView.OnItemClickListener {        @Override        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {            Account account=(Account)parent.getItemAtPosition(position);            Toast.makeText(getApplicationContext(),account.toString(),Toast.LENGTH_SHORT).show();        }    }}

0 0