案例——商品展示

来源:互联网 发布:淘宝联盟推广位怎么设 编辑:程序博客网 时间:2024/06/04 20:02

我们先来看一下运行效果图


在这个案例中我们用到了一种新的控件ListView


1.activity_main.xml

<?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:id="@+id/activity_main"    android:layout_width="match_parent"    android:layout_height="match_parent"    tools:context="cn.edu.bzu.listdemo3.MainActivity">    <LinearLayout        android:id="@+id/linear"        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="@string/et1"/>        <EditText            android:id="@+id/balanceET"            android:layout_width="0dp"            android:layout_height="wrap_content"            android:layout_weight="1"            android:hint="@string/et2"/>        <ImageView            android:id="@+id/iv1"            android:onClick="add"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:layout_gravity="center_vertical"            android:src="@android:drawable/ic_input_add"/>    </LinearLayout>    <ListView        android:id="@+id/list_view"        android:layout_width="match_parent"        android:layout_height="match_parent"        android:layout_below="@id/linear"        /></RelativeLayout>
2.listview_item.xml

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:orientation="horizontal"    android:layout_width="match_parent"    android:layout_height="match_parent"    >    <TextView        android:id="@+id/idTV"        android:layout_width="0dp"        android:layout_height="wrap_content"        android:layout_weight="1"        android:textSize="25sp"        android:text="1"        android:textColor="#000000"/>    <TextView        android:id="@+id/nameTV"        android:layout_width="0dp"        android:layout_height="wrap_content"        android:layout_weight="1"        android:textSize="25sp"        android:text="毛巾"        android:textColor="#000000"/>    <TextView        android:id="@+id/balanceTV"        android:layout_width="0dp"        android:layout_height="wrap_content"        android:layout_weight="1"        android:textSize="25sp"        android:text="100"        android:textColor="#000000"/>    <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"            android:layout_marginTop="8dp"/>    </LinearLayout>    <ImageView        android:id="@+id/deleteIV"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:src="@android:drawable/ic_menu_delete" /></LinearLayout>


3.MyHelper

public class MyHelper extends SQLiteOpenHelper{    public MyHelper(Context context){        super(context,"itcast.db",null,2);    }    @Override    public void onCreate(SQLiteDatabase db) {        System.out.println("onCreate");        db.execSQL("CREATE TABLE account(_id INTEGER PRIMARY KEY AUTOINCREMENT,name VARCHAR(20),balance INTEGER)");    }    @Override    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {        System.out.println("onUpgrade");    }}
4.Account

public class Account {    private  Long id;    private String name;    private  Integer balance;    @Override    public String toString() {        return "Account{" +                "序号=" + id +                ", 商品名称='" + name + '\'' +                ", 余额=" + balance +                '}';    }    public Account(String name, Integer balan        super();        this.name = name;        this.balance = balance;    }    public Account(Long id, String name, Inte        super();        this.id = id;        this.name = name;        this.balance = 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(){        super();    }}
5.AccountDao

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 c=db.query("account",null,null,null,null,null,"balance DESC");        List<Account> list=new ArrayList<Account>();        while (c.moveToNext()){            long id=c.getLong(c.getColumnIndex("_id"));            String name=c.getString(1);            int balance=c.getInt(2);            list.add(new Account(id,name,balance));        }        c.close();        db.close();        return list;    }}
6.MainActivity

public class MainActivity extends AppCompatActivity {    private List<Account> list;    private AccountDao accountDao;    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();        accountDao=new AccountDao(this);        list=accountDao.queryAll();        adapter=new MyAdapter();        accountLV.setAdapter(adapter);    }    private void initView() {        accountLV=(ListView) findViewById(R.id.list_view);        nameET=(EditText)findViewById(R.id.nameET);        balanceET=(EditText)findViewById(R.id.balanceET);        accountLV.setOnItemClickListener(new MyOnItemClickListener());    }    public void add(View v){        String name=nameET.getText().toString().trim();        String balance=balanceET.getText().toString().trim();        Account a=new Account(name,balance.equals("")?0:Integer.parseInt(balance));        accountDao.insert(a);        list.add(a);        adapter.notifyDataSetChanged();        accountLV.setSelection(accountLV.getCount()-1);        nameET.setText("");        balanceET.setText("");    }    private  class MyAdapter extends BaseAdapter{        public int getCount(){            return list.size();        }        public Object getItem(int position){            return  list.get(position);        }        public long getItemId(int position){            return position;        }        public View getView(int position, View convertView, ViewGroup parent){            View item=convertView!=null?convertView:View.inflate(                    getApplicationContext(),R.layout.listview_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 a=list.get(position);            idTV.setText(a.getId()+"");            nameTV.setText(a.getName());            balanceTV.setText(a.getBalance()+"");            ImageView upIV=(ImageView) item.findViewById(R.id.upIV);            ImageView downIV=(ImageView) item.findViewById(R.id.downIV);            ImageView deleteIV=(ImageView) item.findViewById(R.id.deleteIV);            upIV.setOnClickListener(new View.OnClickListener() {                @Override                public void onClick(View view) {                    a.setBalance(a.getBalance()+1);                    notifyDataSetChanged();                    accountDao.update(a);                }            });            downIV.setOnClickListener(new View.OnClickListener() {                @Override                public void onClick(View view) {                    a.setBalance(a.getBalance()-1);                    notifyDataSetChanged();                    accountDao.update(a);                }            });            deleteIV.setOnClickListener(new View.OnClickListener() {                @Override                public void onClick(View view) {                    android.content.DialogInterface.OnClickListener listener=                            new android.content.DialogInterface.OnClickListener(){                                @Override                                public void onClick(DialogInterface dialog, int which) {                                    list.remove(a);                                    accountDao.delete(a.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 {        public void onItemClick(AdapterView<?> parent,View view,int position,long id){            Account a=(Account) parent.getItemAtPosition(position);            Toast.makeText(getApplicationContext(),a.toString(),Toast.LENGTH_SHORT).show();        }    }}



0 0
原创粉丝点击