商品展示

来源:互联网 发布:打印排版软件 编辑:程序博客网 时间:2024/04/27 22:27

1.activity_main.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="cn.edu.bzu.case_sql.MainActivity">    <LinearLayout        android:id="@+id/addLL"        android:orientation="horizontal"        android:layout_width="match_parent"        android:layout_height="wrap_content">        <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="match_parent"        android:src="@android:drawable/ic_input_add" />    </LinearLayout>    <ListView        android:id="@+id/accountLV"        android:layout_width="match_parent"        android:layout_height="match_parent"        android:layout_below="@+id/addLL">    </ListView></LinearLayout>
如图:
2.MyHelper类

    package cn.edu.bzu.case_sql.dao;    import android.content.Context;    import android.database.sqlite.SQLiteDatabase;    import android.database.sqlite.SQLiteOpenHelper;    import android.provider.Settings;    /**    * Created by HZY on 2017/4/22.    */    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");    }    }
3.Account类

package cn.edu.bzu.case_sql.bean;/*** Created by HZY on 2017/4/21.*/public class Account {private Long id;private String name;private Integer balance;public Account(Long id, String name, Integer balance) {this.id = id;this.name = name;this.balance = balance;}public Account(String name, Integer balance) {this.name = name;this.balance = balance;}public Account() {super();}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;}@Overridepublic String toString() {return "[序号:"+id+",商品名称:"+name+",余额:"+balance+"]";}}
4.AccountDao
package cn.edu.bzu.case_sql.dao;    import android.content.ContentValues;    import android.content.Context;    import android.database.Cursor;    import android.database.sqlite.SQLiteDatabase;    import java.util.ArrayList;    import java.util.List;    import cn.edu.bzu.case_sql.bean.Account;    /**    * Created by HZY on 2017/4/22.    */    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.getWritableDatabase();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;    }    }
5.MainActivity
package cn.edu.bzu.case_sql;    import android.content.ContentProviderOperation;    import android.content.DialogInterface;    import android.support.v7.app.AlertDialog;    import android.support.v7.app.AppCompatActivity;    import android.os.Bundle;    import android.support.v7.app.NotificationCompat;    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 java.util.List;    import java.util.Objects;    import cn.edu.bzu.case_sql.bean.Account;    import cn.edu.bzu.case_sql.dao.AccountDao;    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 v){    String name=nameET.getText().toString().trim();    String balance=balanceET.getText().toString().trim();    Account a=new Account(name,balance.equals("")?0:Integer.parseInt(balance));    dao.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);    }    @Override    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.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();    dao.update(a);    }    });    downIV.setOnClickListener(new View.OnClickListener(){    @Override    public void onClick(View view) {    a.setBalance(a.getBalance()-1);    notifyDataSetChanged();    dao.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);    dao.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