商品展示案例
2017-04-17 18:56
447 查看
知识点:ListView和SQLite数据库
文件目录,如图:
3.主布局文件(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 /工具” 机器人:ID = “@ + ID / activity_main” 机器人:layout_width = “match_parent” 机器人:layout_height = “match_parent” 机器人:方向= “垂直” 机器人:layout_margin = “8DP” 工具:上下文= “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_h 8 =“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>4.创建ListView的项目布局,如图:
代码:
<?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 = “垂直”> <ImageView的 机器人:ID = “@ + ID / upIv” 机器人:layout_width = “WRAP_CONTENT” 机器人:layout_height = “WRAP_CONTENT” 机器人:SRC = “@机器人:可拉伸/ arrow_up_float”/> <ImageView的 机器人:ID =“@ + id / downIv” android:layout_width =“wrap_content” android:layout_height =“wrap_content” android:src =“@ android:drawable / arrow_down_float”/> </ LinearLayout> <ImageView android:id =“@ / deleteIv“ android:layout_width =”25dp“ android:layout_height =”25dp“ android:src =”@ android:drawable / ic_menu_delete“/> </ LinearLayout>5.定义一个MyHelper类继承自SQLiteOpenHelper,代码:
package com.example.bzu.product.dao; 导入android.content.Context; 导入android.database.sqlite.SQLiteDatabase; 导入android.database.sqlite.SQLiteOpenHelper; / ** *由管理员于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){ } }6.创建账号类(javaBean),代码:
package com.example.bzu.product.bean; / ** *由管理员于2017/4/17创建。 * / public class Account { private Long id; 私有字符串名称 私有整数余额 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; 这个平衡=平衡; } public Account(Long id,String name,Integer balance){ super(); this.id = id; this.name = name; 这个平衡=平衡; } public Account(){ super(); } @Override public String toString(){ return“[序号:”+ id +“,商品名称”+ name + “,余额”+ balance +“]”; } }创建数据库操作逻辑类AccountDao,代码:
package com.example.bzu.product.dao; 导入android.content.ContentValues; 导入android.content.Context; 导入android.database.Cursor; 导入android.database.sqlite.SQLiteDatabase; import com.example.bzu.product.bean.Account; import java.util.ArrayList; import java.util.List; / ** *由管理员于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(); 回报数 } 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(); 回报数 } public List <Account> queryAll(){ SQLiteDatabase db = helper.getReadableDatabase(); 游标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(); 退货单 } }8.编写界面交互代码(MainActivity),代码:
package com.example.bzu.product; 导入android.content.DialogInterface; 导入android.support.v7.app.AlertDialog; 导入android.support a8c1 .v7.app.AppCompatActivity; 导入android.os.Bundle; 导入android.view.View; 导入android.view.ViewGroup; 导入android.widget.AdapterView; 导入android.widget.BaseAdapter; 导入android.widget.EditText; 导入android.widget.ImageView; 导入android.widget.ListView; 导入android.widget.TextView; 导入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; 私人账号 私人EditText nameEt; 私人EditText balanceEt; 私人MyAdapter适配器 私人ListView帐户 @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()。 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); 最终帐户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(); } }); 归还物品; } } 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(); } } }运行效果图:
相关文章推荐
- ListView控件的使用--商品展示案例
- Android案例-商品展示
- 实验:Android案例——商品展示
- 商品展示案例
- 数据存储和访问之商品展示案例
- 商品展示案例
- 案例—商品展示
- SQLite数据库---ListView控件之商品展示案例
- Android学习历程--Sqlite的使用(商品展示案例)
- Android ListView与SQLite综合使用(水果商品展示案例)
- 商品展示案例
- 案例1-后台商品列表的展示
- 商品展示案例
- Android-商品展示案例
- 商品展示——案例
- android 之SQLite案例--商品展示
- 商品展示案例
- Android案例:商品展示
- Android学习笔记——SQLite数据库案例【商品展示】
- 商品展示案例