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
- Android案例之商品展示
- android 之SQLite案例--商品展示
- Android案例-商品展示
- Android商品展示案例
- Android案例-商品展示
- Android案例:商品展示
- Android 案例:商品展示
- Android-商品展示案例
- Android商品展示小案例
- android商品展示案例FruitStore
- android SQLite案例(商品展示)
- Android中商品展示案例
- Android中商品展示案例
- android中商品展示案例
- Android SQLite(5)商品展示案例
- 实验:Android案例——商品展示
- 商品展示案例
- 商品展示案例
- 数据结构第三次实验——线性表专题在线评测
- mysql
- 精准获得程序运行时间
- 计算一个矩阵从左上角到右下角和最大(DFS)
- 不正经运维狗的文档2_5
- Android案例之商品展示
- 设计模式分类
- github: object tracking benchmark
- 机器学习01
- poj-1125-Stockbroker Grapevine
- jzoj P2129【2017.4.21普及】礼物
- android6.0(API23)以上动态申请权限
- 为什么每个人都该学点计算机
- MySQL利用binlog恢复误操作数据