题 目 OnlineStore 系 别 信息与控制工程系 专 业 计算机科学与技术 班 级 1701 学 号 173230110 姓 名 阮云飞 指导教师 郭丹 目 录 1. OnlineStore App的设计与实现 3 1.1系统需求分析 3 1.1.1系统结构图: 3 1.1.2系统模块分析 5 1.1.3数据库分析 8 1.1.4系统实现 9 2.设计总结 17 2.1设计内容的复杂性 17 2.2设计体会与收获 17 附件 18 1.布局及代码 18 1.1登录页面 18 1.2注册页面 21 1.3首页 23 1.4购物页面 33 1.5资讯页面 38 1.6 Listview_item页面 42 2.JAVA源码 43 2.1登录页面 43 2.2注册页面 44 2.3首页-最新资讯 45 2.4首页-最新商品 46 2.5购物 47 2.6资讯页面 50 2.7 MyHelper 51 2.8 CartAdapter 52 2.9 CartBean 53 1.OnlineStore App的设计与实现 1.1系统需求分析 1.1.1系统结构图: 1.1.2系统模块分析 OnlineStoreApp的系统架构主要是有登录,注册,首页,购物,资讯五大模块, 1.登录 登录页面主要由账号,密码,登录按钮,注册按钮组成。页面包含App名称的logo,可以显示头像,输入的账号,密码。输入账号及密码则可登录 2.注册 注册页面主要由账号,密码,注册按钮组成。页面包含App名称的logo,可以显示头像,输入的账号,密码。输入账号及密码则可登录 3.首页 首页页面主要由菜单,首页按钮,购物按钮,资讯按钮 最新资讯,最新商品,热销排行组成。页面主要显示商品的最新的资讯消息,能够给用户提供第一手的商品信息,一些最新商品的排行能够及时的反映潮流方向供用户选择。 购物 购物页面主要由菜单,首页按钮,购物按钮,资讯按钮组成。页面主要实现商品的增加,删除,修改,查找。手动输入商品的品名,数量,价格就能实现以上功能,在一定程度上增加了用户对于商品相关信息了解的便利性,该页面与数据库相连,实现了数据的实时存储,一遍用户的日后查询。 5.资讯 资讯页面主要由菜单,首页按钮,购物按钮,资讯按钮组成。页面主要显示商品的信息以及相关评论。 1.1.3数据库分析 实现代码: class MyHelper extends SQLiteOpenHelper { public MyHelper(Context context) { super(context, "shoppingcart.db", null, 1); } @Override public void onCreate(SQLiteDatabase db) { db.execSQL("CREATE TABLE cart(_id INTEGER PRIMARY KEY AUTOINCREMENT, name VARCHAR(20), price VARCHAR(20), number VARCHAR(20))"); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { } } 1.1.4系统实现 1.注册 注册成功后跳转到登录页面,并在下部提示注册成功,下步用账号密码登录关键代码: 按钮方法: public void click(View view){ Intent intent = new Intent(ZhuceActivity.this, MainActivity.class); overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out); startActivity(intent); } 下部提示框: public void fanhui(View view){ Toast.makeText(ZhuceActivity.this,"注册成功",Toast.LENGTH_SHORT).show(); Intent intent = new Intent(); intent.setClass(ZhuceActivity.this, MainActivity.class); startActivity(intent); overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out); } 2.登录 在登录页面登录成功后即可进入首页 关键代码: public void click(View view){ Toast.makeText(MainActivity.this,"登陆成功",Toast.LENGTH_SHORT).show(); Intent intent = new Intent(MainActivity.this, ShouOneActivity.class); overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out); startActivity(intent); } public void zc(View view){ Intent intent = new Intent(); intent.setClass(MainActivity.this, ZhuceActivity.class); startActivity(intent); overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out); } 3.首页: 点击最新商品即可跳转到目的页面 关键代码: public void onClick(View v) { switch (v.getId()) { case R.id.btn1: Intent intent = new Intent(ShouOneActivity.this, ShouTwoActivity.class); startActivity(intent); overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out); finish(); break; } } 4.购物: 添加: 输入品名,价格,数量添加商品信息。 关键代码: switch (v.getId()){ case R.id.add: db = myHelper.getWritableDatabase(); name = et_name.getText().toString(); price = et_price.getText().toString(); number = et_number.getText().toString(); ContentValues values = new ContentValues(); //创建ContentValues对象 values.put("name", name); //将数据添加到ContentValues对象 values.put("price", price); values.put("number", number); db.insert("cart", null, values); db.close(); Toast.makeText(this, "信息已添加", Toast.LENGTH_SHORT).show(); break; 查询: 在输入相应信息后点击查询,下部listview中显示相关信息。 关键代码: case R.id.query: Log.e("yanwenhua","123"); List<CartBean> list = new ArrayList(); db = myHelper.getWritableDatabase(); Cursor cursor = db.query("cart", null, null, null, null, null, null); if (cursor.getCount() == 0) { Toast.makeText(this, "没有数据", Toast.LENGTH_SHORT).show(); } else { while (cursor.moveToNext()) { CartBean cartBean = new CartBean(); int nameIndex = cursor.getColumnIndex("name"); int priceIndex = cursor.getColumnIndex("price"); int numberIndex = cursor.getColumnIndex("number"); String name = cursor.getString(nameIndex); String price = cursor.getString(priceIndex); String number = cursor.getString(numberIndex); Log.e("yanwenhua","cursor.getCount();--"+cursor.getCount()+"name-"+name+" "+price+" "+number); cartBean.setName(name); cartBean.setPrice(price); cartBean.setNumber(number); list.add(cartBean); } CartAdapter adapter = new CartAdapter(ShoppingActivity.this,list); listView.setAdapter(adapter); adapter.notifyDataSetChanged(); } cursor.close(); db.close(); break; 修改: 在上部信息中修改后,点击修改按钮修改,修改后,点击查询查询修改后的商品信息。 关键代码: case R.id.update: name = et_name.getText().toString(); price = et_price.getText().toString(); number = et_number.getText().toString(); db = myHelper.getWritableDatabase(); values = new ContentValues(); // 要修改的数据 values.put("number",number); values.put("price",price); db.update("cart", values, "name=?", new String[]{name}); // 更新并得到行数 db.close(); Toast.makeText(this, "信息已修改", Toast.LENGTH_SHORT).show(); break; 删除: 点击删除就可以删除商品信息。 关键代码: case R.id.delete: db = myHelper.getWritableDatabase(); db.delete("cart", null, null); List<CartBean> list2 = new ArrayList(); CartAdapter adapter = new CartAdapter(ShoppingActivity.this,list2); listView.setAdapter(adapter); adapter.notifyDataSetChanged(); db.close(); Toast.makeText(this, "信息已删除", Toast.LENGTH_SHORT).show(); break; 2设计总结 2.1设计内容的复杂性 该应用设计复杂性主要是实现商品信息的增加,查询,修改,删除,并且要同时实现listview与数据库的连接,针对这一问题,我们的解决方案是设置适配器通过实体类的构造方法取出数据库里的数据,在通过适配器把实体类对象中的各个变量传入到textview,进而实现listview显示数据库中的数据,进而实现增加,查询,修改,删除功能的实现。 2.2设计体会,收获 本学期Android课程设计在不知不觉中结束了,虽说这次课程设计时长不是很长,但是感觉自我收获颇丰,不仅仅学习到了一些新知识, 回顾了以前一些快要遗忘的知识点,而且使自我的学习目标更加明确,学习方法更加完善,也体会到Android开发的趣味, 更加清楚地认识到了自我在软件开发及学习上的一些不足之处。下方就来详细写一下我关于此次课程设计的心得体会: 让我们感觉到了Android的趣味性,Android的实用性。虽说一些技术我们在课堂上也曾学习过,但是大多停留在理论学习上,实际开发很少,而这次课程设计给了我一个很好的边学习边实践的机会 对我深入学习这些技术有很大帮忙,深刻体会到了这些技术的实用性。每当自我成功调试一段代码或者透过自我的努力克服一个技术困难,都颇有收获感。 这次实训让我体验了软件开发的过程, 发现自我的不足,了解了Android技术的软件开发,增加了必须的项目开发经验, 增强了必须的就业竞争力。 此次实训最大的收获不是我学习到了多少知识而是这几天实训给我的感悟:首 先是心态。必须要有一个用心的心态,独立解决问题的意识,培养扎实基础的认识。不要什么东西都感觉跟简单 ( 很多东西可能是看似简单 ) 就不去做了或者不屑做,以至于性网上搜搜就能够了,这样很不好。有自我的东西有自我的付出才会有程序运行成功时的喜悦和小自豪,这样也有助于培养自我的兴趣。 要时刻牢 记态度决定一切。 其次是兴趣, 感觉学习工作中兴趣很关键, 只是一个引发人用 心性的问题,有了兴趣就自觉了,效率自然就高了。再次要敢于尝试和挑战。不要安于现成的程序, 而且不要害怕失败, 在程序调试的过程中这点尤为重要,发现出问题然后解决问题是一个积累经验的过程,而且很高效。最后要不懈追求。 对于源代码进行不断的完善, 要尽可能的实现课题所要求的功能。 对于初学者或 者开发较少的人来说,多写程序还是有必要的, 但同时要注意思考, 理解其实现的内在好处。 还能够自我添加一些有好处的功能来实现。当看到自我编写的 程序正常运行时,兴趣也会随之而来,乐此不疲,构成一个良性循环。 短短的课程设计很快结束了, 我发现我对Android有了新的认识。 透过这次的实训,我了解到, 要真真正正的掌握Android还不是一件简单容易的事儿, 但真正掌握后,让我的思想、技能又上了一个台阶 ! 附件 1.布局及代码 1.1登录页面 <?xml version="1.0" encoding="utf-8"?> <android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:layout_editor_absoluteX="60dp" tools:layout_editor_absoluteY="-53dp"> <LinearLayout android:layout_width="match_parent" android:layout_height="138dp" android:orientation="horizontal"> <TextView android:id="@+id/textView4" android:layout_width="197dp" android:layout_height="wrap_content" android:layout_marginLeft="110dp" android:layout_marginTop="90dp" android:text="OnlineStore" android:textColor="#2C2C2C" android:textSize="36sp" android:textStyle="bold|italic" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="115dp" android:orientation="horizontal"> <ImageView android:id="@+id/imageView2" android:layout_width="wrap_content" android:layout_height="90dp" android:layout_marginTop="10dp" android:layout_weight="1" app:srcCompat="@drawable/enterone" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="69dp" android:orientation="horizontal"> <ImageView android:id="@+id/imageView3" android:layout_width="38dp" android:layout_height="34dp" android:layout_marginLeft="90dp" android:layout_marginTop="10dp" app:srcCompat="@drawable/enterthree" /> <EditText android:id="@+id/editText" android:layout_width="207dp" android:layout_height="50dp" android:layout_marginTop="2dp" android:ems="10" android:inputType="phone" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="69dp" android:orientation="horizontal"> <ImageView android:id="@+id/imageView4" android:layout_width="35dp" android:layout_height="35dp" android:layout_marginLeft="90dp" android:layout_marginTop="20dp" app:srcCompat="@drawable/enterotwo" /> <EditText android:id="@+id/editText" android:layout_width="210dp" android:layout_height="50dp" android:layout_marginTop="10dp" android:ems="10" android:inputType="phone" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="96dp" android:orientation="horizontal"> <Button android:id="@+id/button" android:layout_width="208dp" android:layout_height="wrap_content" android:layout_marginLeft="110dp" android:layout_marginTop="20dp" android:onClick="click" android:text="LOGIN" android:textSize="18sp" android:textStyle="bold|italic" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="96dp" android:orientation="horizontal"> <Button android:id="@+id/button1" android:layout_width="208dp" android:layout_height="wrap_content" android:layout_marginLeft="110dp" android:onClick="zc" android:text="LOG0N" android:textSize="18sp" android:textStyle="bold|italic" /> </LinearLayout> </LinearLayout> </android.support.constraint.ConstraintLayout> 1.2注册页面 <?xml version="1.0" encoding="utf-8"?> <android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".ZhuceActivity"> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:layout_editor_absoluteX="60dp" tools:layout_editor_absoluteY="-53dp"> <LinearLayout android:layout_width="match_parent" android:layout_height="138dp" android:orientation="horizontal"> <TextView android:id="@+id/textView4" android:layout_width="197dp" android:layout_height="wrap_content" android:layout_marginLeft="110dp" android:layout_marginTop="90dp" android:text="OnlineStore" android:textColor="#2C2C2C" android:textSize="36sp" android:onClick="fanhui" android:textStyle="bold|italic" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="115dp" android:orientation="horizontal"> <ImageView android:id="@+id/imageView2" android:layout_width="wrap_content" android:layout_height="90dp" android:layout_marginTop="10dp" android:layout_weight="1" app:srcCompat="@drawable/enterone" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="69dp" android:orientation="horizontal"> <ImageView android:id="@+id/imageView3" android:layout_width="38dp" android:layout_height="34dp" android:layout_marginLeft="90dp" android:layout_marginTop="10dp" app:srcCompat="@drawable/enterthree" /> <EditText android:id="@+id/editText" android:layout_width="207dp" android:layout_height="50dp" android:layout_marginTop="2dp" android:ems="10" android:inputType="phone" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="69dp" android:orientation="horizontal"> <ImageView android:id="@+id/imageView4" android:layout_width="35dp" android:layout_height="35dp" android:layout_marginLeft="90dp" android:layout_marginTop="20dp" app:srcCompat="@drawable/enterotwo" /> <EditText android:id="@+id/editText" android:layout_width="210dp" android:layout_height="50dp" android:layout_marginTop="10dp" android:ems="10" android:inputType="phone" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="96dp" android:orientation="horizontal"> <Button android:id="@+id/button2" android:layout_width="208dp" android:layout_height="wrap_content" android:layout_marginLeft="110dp" android:layout_marginTop="10dp" android:onClick="fanhui" android:text="LOG0N" android:textSize="18sp" android:textStyle="bold|italic" /> </LinearLayout> </LinearLayout> </android.support.constraint.ConstraintLayout> 1.3首页 1.3.1首页-最新资讯 <?xml version="1.0" encoding="utf-8"?> <android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".ShouOneActivity"> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="1.0" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" app:layout_constraintVertical_bias="0.0"> <LinearLayout android:layout_width="match_parent" android:layout_height="49dp" android:orientation="horizontal"> <ImageView android:id="@+id/imageView6" android:layout_width="30dp" android:layout_height="30dp" android:layout_marginLeft="15dp" android:layout_marginTop="12dp" app:srcCompat="@drawable/caidan" /> <TextView android:id="@+id/textView" android:layout_width="174dp" android:layout_height="47dp" android:layout_marginLeft="79dp" android:layout_marginTop="5dp" android:text="OnlineStore" android:textColor="#010102" android:textSize="30sp" android:textStyle="bold|italic" /> <ImageView android:id="@+id/imageView7" android:layout_width="30dp" android:layout_height="30dp" android:layout_marginLeft="70dp" android:layout_marginTop="11dp" app:srcCompat="@drawable/sousuo" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="60dp" android:orientation="horizontal"> <ImageView android:id="@+id/imageView14" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" app:srcCompat="@drawable/shouyesix" /> </LinearLayout> <LinearLayout android:layout_width="403dp" android:layout_height="35dp" android:layout_marginLeft="10dp" android:orientation="horizontal"> <Button android:id="@+id/btn3" android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_weight="1" android:text="最新资讯" android:textSize="12sp" android:textStyle="bold" /> <Button android:id="@+id/btn1" android:layout_width="wrap_content" android:layout_height="35dp" android:layout_weight="1" android:onClick="onClick" android:text="最新商品" android:textSize="12sp" android:textStyle="bold" /> <Button android:id="@+id/btn2" android:layout_width="wrap_content" android:layout_height="34dp" android:layout_weight="1" android:onClick="onClick" android:text="热销排行" android:textSize="12sp" android:textStyle="bold" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="205dp" android:orientation="horizontal"> <ImageView android:id="@+id/imageView3" android:layout_width="449dp" android:layout_height="208dp" android:layout_weight="1" app:srcCompat="@drawable/shouyeone" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="256dp" android:layout_marginTop="4dp"> <ImageView android:id="@+id/imageView10" android:layout_width="206dp" android:layout_height="265dp" android:layout_marginTop="3dp" app:srcCompat="@drawable/shouyefive" /> <ImageView android:id="@+id/imageView8" android:layout_width="218dp" android:layout_height="272dp" app:srcCompat="@drawable/shouyefour" /> </LinearLayout> <LinearLayout android:layout_width="400dp" android:layout_height="51dp" android:layout_marginLeft="11dp" android:orientation="horizontal"> <Button android:id="@+id/button5" android:layout_width="wrap_content" android:layout_height="50dp" android:layout_weight="1" android:background="#191A24" android:text="首页" android:textColor="#FDFDFE" android:textSize="20sp" android:textStyle="bold|italic" /> <Button android:id="@+id/button4" android:layout_width="wrap_content" android:layout_height="50dp" android:layout_weight="1" android:background="#FDFDFE" android:onClick="onClick" android:text="购物" android:textSize="20sp" android:textStyle="bold|italic" /> <Button android:id="@+id/button3" android:layout_width="wrap_content" android:layout_height="50dp" android:layout_weight="1" android:background="#191A24" android:onClick="onClick" android:text="资讯" android:textColor="#FDFDFE" android:textSize="20sp" android:textStyle="bold|italic" /> </LinearLayout> </LinearLayout> </android.support.constraint.ConstraintLayout> </android.support.constraint.ConstraintLayout> 1.3.2首页-最新商品 <?xml version="1.0" encoding="utf-8"?> <android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".ShouTwoActivity"> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.0" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" app:layout_constraintVertical_bias="0.0"> <LinearLayout android:layout_width="match_parent" android:layout_height="49dp" android:orientation="horizontal"> <ImageView android:id="@+id/imageView6" android:layout_width="30dp" android:layout_height="30dp" android:layout_marginLeft="15dp" android:layout_marginTop="12dp" app:srcCompat="@drawable/caidan" /> <TextView android:id="@+id/textView" android:layout_width="174dp" android:layout_height="47dp" android:layout_marginLeft="79dp" android:layout_marginTop="5dp" android:text="OnlineStore" android:textColor="#010102" android:textSize="30sp" android:textStyle="bold|italic" /> <ImageView android:id="@+id/imageView7" android:layout_width="30dp" android:layout_height="30dp" android:layout_marginLeft="70dp" android:layout_marginTop="11dp" app:srcCompat="@drawable/sousuo" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="77dp" android:orientation="horizontal"> <ImageView android:id="@+id/imageView" android:layout_width="wrap_content" android:layout_height="77dp" android:layout_weight="1" app:srcCompat="@drawable/shouyesix" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="35dp" android:orientation="horizontal"> <Button android:id="@+id/btn3" android:layout_width="wrap_content" android:layout_height="34dp" android:layout_weight="1" android:text="最新资讯" android:textSize="12sp" android:onClick="onClick" android:textStyle="bold" /> <Button android:id="@+id/btn1" android:layout_width="wrap_content" android:layout_height="35dp" android:layout_weight="1" android:text="最新商品" android:textSize="12sp" android:textStyle="bold" /> <Button android:id="@+id/btn2" android:layout_width="wrap_content" android:layout_height="34dp" android:layout_weight="1" android:text="热销排行" android:textSize="12sp" android:onClick="onClick" android:textStyle="bold" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="22dp" android:orientation="horizontal"> <ImageView android:id="@+id/imageView4" android:layout_width="18dp" android:layout_height="wrap_content" android:layout_marginLeft="12dp" app:srcCompat="@drawable/syone" /> <ImageView android:id="@+id/imageView5" android:layout_width="20dp" android:layout_height="wrap_content" android:layout_marginLeft="28dp" app:srcCompat="@drawable/sythree" /> <ImageView android:id="@+id/imageView9" android:layout_width="15dp" android:layout_height="wrap_content" android:layout_marginLeft="28dp" app:srcCompat="@drawable/sytwo" /> <TextView android:id="@+id/textView2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="200dp" android:layout_marginTop="3dp" android:shadowColor="#090707" android:text="店长推荐" android:textColor="#0F0E0E" android:textSize="12sp" android:textStyle="bold|italic" /> <ImageView android:id="@+id/imageView12" android:layout_width="13dp" android:layout_height="wrap_content" android:layout_marginRight="3dp" app:srcCompat="@drawable/syfour" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="425dp" android:layout_marginTop="2dp" android:orientation="vertical"> <ImageView android:id="@+id/imageView13" android:layout_width="match_parent" android:layout_height="180dp" app:srcCompat="@drawable/one" /> <ImageView android:id="@+id/imageView11" android:layout_width="match_parent" android:layout_height="273dp" app:srcCompat="@drawable/sysix" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="horizontal"> <Button android:id="@+id/button5" android:layout_width="wrap_content" android:layout_height="50dp" android:layout_weight="1" android:background="#191A24" android:text="首页" android:textColor="#FDFDFE" android:textSize="20sp" android:onClick="Zhuan" android:textStyle="bold|italic" /> <Button android:id="@+id/button4" android:layout_width="wrap_content" android:layout_height="50dp" android:layout_weight="1" android:background="#FDFDFE" android:text="购物" android:textSize="20sp" android:textStyle="bold|italic" /> <Button android:id="@+id/button3" android:layout_width="wrap_content" android:layout_height="50dp" android:layout_weight="1" android:background="#191A24" android:text="资讯" android:textColor="#FDFDFE" android:textSize="20sp" android:onClick="Zhuan" android:textStyle="bold|italic" /> </LinearLayout> </LinearLayout> </android.support.constraint.ConstraintLayout> 1.4购物页面 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#E6E6E6" android:orientation="vertical" android:padding="10dp"> <LinearLayout android:layout_width="match_parent" android:layout_height="42dp" android:orientation="horizontal"> <ImageView android:id="@+id/imageView6" android:layout_width="30dp" android:layout_height="30dp" android:layout_marginLeft="1dp" android:layout_marginTop="11dp" app:srcCompat="@drawable/caidan" /> <TextView android:id="@+id/textView" android:layout_width="174dp" android:layout_height="35dp" android:layout_marginLeft="79dp" android:layout_marginTop="5dp" android:text="OnlineStore" android:textColor="#010102" android:textSize="30sp" android:textStyle="bold|italic" /> <ImageView android:id="@+id/imageView7" android:layout_width="30dp" android:layout_height="30dp" android:layout_marginLeft="70dp" android:layout_marginTop="11dp" app:srcCompat="@drawable/sousuo" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="62dp" android:orientation="horizontal"> <ImageView android:id="@+id/imageView" android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_weight="1" app:srcCompat="@drawable/shouyesix" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="15dp" android:background="@android:color/white" android:orientation="horizontal"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:padding="10dp" android:text="品名:" android:textColor="#000" android:textSize="18sp" android:textStyle="bold|italic" /> <EditText android:id="@+id/et_name" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginLeft="5dp" android:background="@null" android:padding="10dp" android:maxLines="1"/> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="15dp" android:background="@android:color/white" android:orientation="horizontal"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:padding="10dp" android:text="价格:" android:textColor="#000" android:textSize="18sp" android:textStyle="bold|italic" /> <EditText android:id="@+id/et_price" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginLeft="5dp" android:background="@null" android:padding="10dp" android:maxLines="1"/> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="10dp" android:background="@android:color/white" android:orientation="horizontal"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:padding="10dp" android:text="数量:" android:textColor="#000" android:textSize="18sp" android:textStyle="bold|italic" /> <EditText android:id="@+id/et_number" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginLeft="5dp" android:background="@null" android:padding="10dp" android:maxLines="1"/> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:layout_marginTop="10dp"> <Button android:id="@+id/add" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:background="#191A24" android:text="添加" android:textColor="#FFFFFF" android:textSize="16sp" android:textStyle="bold" /> <Button android:id="@+id/query" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:background="#FDFDFE" android:text="查询" android:textColor="#191A24" android:textSize="16sp" android:textStyle="bold" /> <Button android:id="@+id/update" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:background="#191A24" android:text="修改" android:textColor="#FFFFFF" android:textSize="16sp" android:textStyle="bold" /> <Button android:id="@+id/delete" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:background="#FDFDFE" android:text="删除" android:textColor="#191A24" android:textSize="16sp" android:textStyle="bold" /> </LinearLayout> <ListView android:id="@+id/listView" android:layout_width="wrap_content" android:layout_height="262dp" android:background="#ffffff"> </ListView> <LinearLayout android:layout_width="match_parent" android:layout_height="89dp" android:orientation="horizontal"> <Button android:id="@+id/button5" android:layout_width="wrap_content" android:layout_height="50dp" android:layout_weight="1" android:background="#191A24" android:onClick="Zhuan" android:text="首页" android:textColor="#FDFDFE" android:textSize="20sp" android:textStyle="bold|italic" /> <Button android:id="@+id/button4" android:layout_width="wrap_content" android:layout_height="50dp" android:layout_weight="1" android:background="#FDFDFE" android:text="购物" android:textSize="20sp" android:textStyle="bold|italic" /> <Button android:id="@+id/button3" android:layout_width="wrap_content" android:layout_height="50dp" android:layout_weight="1" android:background="#191A24" android:onClick="Zhuan" android:text="资讯" android:textColor="#FDFDFE" android:textSize="20sp" android:textStyle="bold|italic" /> </LinearLayout> </LinearLayout> 1.5资讯页面 <?xml version="1.0" encoding="utf-8"?> <android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".ConsultActivity"> <LinearLayout android:layout_width="429dp" android:layout_height="803dp" android:layout_marginStart="8dp" android:layout_marginLeft="8dp" android:layout_marginTop="8dp" android:layout_marginEnd="8dp" android:layout_marginRight="8dp" android:background="#E6E6E6" android:orientation="vertical" android:padding="10dp" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" app:layout_constraintVertical_bias="0.136"> <LinearLayout android:layout_width="match_parent" android:layout_height="42dp" android:layout_marginTop="5dp" android:orientation="horizontal"> <ImageView android:id="@+id/imageView6" android:layout_width="30dp" android:layout_height="30dp" android:layout_marginLeft="1dp" android:layout_marginTop="11dp" app:srcCompat="@drawable/caidan" /> <TextView android:id="@+id/textView" android:layout_width="174dp" android:layout_height="35dp" android:layout_marginLeft="79dp" android:layout_marginTop="5dp" android:text="OnlineStore" android:textColor="#010102" android:textSize="30sp" android:textStyle="bold|italic" /> <ImageView android:id="@+id/imageView7" android:layout_width="30dp" android:layout_height="30dp" android:layout_marginLeft="70dp" android:layout_marginTop="11dp" app:srcCompat="@drawable/sousuo" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="230dp" android:orientation="horizontal"> <ImageView android:id="@+id/imageView15" android:layout_width="422dp" android:layout_height="230dp" android:layout_marginTop="8dp" android:layout_weight="1" app:srcCompat="@drawable/conone" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="46dp" android:layout_marginTop="8dp" android:orientation="horizontal"> <ImageView android:id="@+id/imageView16" android:layout_width="80dp" android:layout_height="wrap_content" app:srcCompat="@drawable/zxone" /> <TextView android:id="@+id/textView3" android:layout_width="wrap_content" android:layout_height="43dp" android:layout_marginTop="10dp" android:layout_weight="1" android:text="我们所爱的就是我们所爱的," android:textColor="#000001" android:textSize="20sp" android:textStyle="normal|bold" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="219dp" android:layout_marginTop="8dp" android:orientation="horizontal"> <ImageView android:id="@+id/imageView17" android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_weight="1" app:srcCompat="@drawable/contwo" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="44dp" android:layout_marginTop="8dp" android:orientation="horizontal"> <ImageView android:id="@+id/imageView18" android:layout_width="80dp" android:layout_height="40dp" app:srcCompat="@drawable/sytwo" /> <TextView android:id="@+id/textView6" android:layout_width="wrap_content" android:layout_height="43dp" android:layout_marginTop="10dp" android:layout_weight="1" android:text="我们所爱的就是我们所爱的," android:textColor="#000001" android:textSize="20sp" android:textStyle="normal|bold" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:layout_marginTop="7dp" android:orientation="horizontal"> <Button android:id="@+id/button5" android:layout_width="wrap_content" android:layout_height="50dp" android:layout_weight="1" android:background="#191A24" android:onClick="zhuan" android:text="首页" android:textColor="#FDFDFE" android:textSize="20sp" android:textStyle="bold|italic" /> <Button android:id="@+id/button4" android:layout_width="wrap_content" android:layout_height="50dp" android:layout_weight="1" android:background="#FDFDFE" android:onClick="zhuan" android:text="购物" android:textSize="20sp" android:textStyle="bold|italic" /> <Button android:id="@+id/button3" android:layout_width="wrap_content" android:layout_height="50dp" android:layout_weight="1" android:background="#191A24" android:text="资讯" android:textColor="#FDFDFE" android:textSize="20sp" android:textStyle="bold|italic" /> </LinearLayout> </LinearLayout> </android.support.constraint.ConstraintLayout> 1.6 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="match_parent" android:orientation="vertical" android:padding="10dp"> <TextView android:id="@+id/tv_name" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="15sp"/> <TextView android:id="@+id/tv_price" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="3dp" android:textSize="15sp"/> <TextView android:id="@+id/tv_number" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="3dp" android:textSize="15sp"/> <ImageView android:id="@+id/imageView1" android:layout_width="match_parent" android:layout_height="wrap_content" android:src="@drawable/img" /> </LinearLayout> 2.JAVA源码 2.1登录页面 package com.example.onlinestore; import android.content.Intent; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.TextView; import android.widget.Toast; public class MainActivity extends AppCompatActivity { public void click(View view){ Toast.makeText(MainActivity.this,"登陆成功",Toast.LENGTH_SHORT).show(); Intent intent = new Intent(MainActivity.this, ShouOneActivity.class); overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out); startActivity(intent); } public void zc(View view){ Intent intent = new Intent(); intent.setClass(MainActivity.this, ZhuceActivity.class); startActivity(intent); overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out); } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); TextView t=(TextView) findViewById(R.id.button1); } } 2.2注册页面 package com.example.onlinestore; import android.content.Intent; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.TextView; import android.widget.Toast; public class ZhuceActivity extends AppCompatActivity { public void click(View view){ Intent intent = new Intent(ZhuceActivity.this, MainActivity.class); overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out); startActivity(intent); } public void fanhui(View view){ Toast.makeText(ZhuceActivity.this,"注册成功",Toast.LENGTH_SHORT).show(); Intent intent = new Intent(); intent.setClass(ZhuceActivity.this, MainActivity.class); startActivity(intent); overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out); } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_zhuce); TextView t=(TextView) findViewById(R.id.button2); } } 2.3首页-最新资讯 package com.example.onlinestore; import android.app.Activity; import android.content.Intent; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; public class ShouOneActivity extends AppCompatActivity { public void onClick(View v) { switch (v.getId()) { case R.id.btn1: Intent intent = new Intent(ShouOneActivity.this, ShouTwoActivity.class); startActivity(intent); overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out); finish(); break; case R.id.btn2: Intent intent3 = new Intent(ShouOneActivity.this, ShouTwoActivity.class); startActivity(intent3); overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out); finish(); break; case R.id.button4: Intent intent5 = new Intent(ShouOneActivity.this, ShoppingActivity.class); startActivity(intent5); overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out); finish(); break; case R.id.button3: Intent intent4 = new Intent(ShouOneActivity.this, ConsultActivity.class); startActivity(intent4); overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out); finish(); break; } } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_shou_one); } } 2.4首页-最新商品 package com.example.onlinestore; import android.content.Intent; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; public class ShouTwoActivity extends AppCompatActivity { public void onClick(View v) { switch (v.getId()) { case R.id.btn3: Intent intent = new Intent(ShouTwoActivity.this, ShouOneActivity.class); startActivity(intent); overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out); finish(); break; case R.id.btn2: Intent intent3 = new Intent(ShouTwoActivity.this, ShouOneActivity.class); startActivity(intent3); overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out); finish(); break; } } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_shou_two); } } 2.5购物 package com.example.onlinestore; import android.content.ContentValues; import android.content.Intent; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.ListView; import android.widget.Toast; import java.util.ArrayList; import java.util.List; public class ShoppingActivity extends AppCompatActivity implements View.OnClickListener { private EditText et_name,et_price,et_number; private ListView listView; private String name,price,number; private MyHelper myHelper; private SQLiteDatabase db; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_shopping); et_name = (EditText)findViewById(R.id.et_name); et_price = (EditText)findViewById(R.id.et_price); et_number = (EditText) findViewById(R.id.et_number); listView = (ListView)findViewById(R.id.listView); Button add = (Button)findViewById(R.id.add); Button query =(Button) findViewById(R.id.query); Button update =(Button) findViewById(R.id.update); Button delete = (Button)findViewById(R.id.delete); add.setOnClickListener(this); query.setOnClickListener(this); update.setOnClickListener(this); delete.setOnClickListener(this); myHelper = new MyHelper(this); } public void Zhuan(View v) { switch (v.getId()) { case R.id.button5: Intent intent = new Intent(ShoppingActivity.this, ShouOneActivity.class); startActivity(intent); overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out); finish(); break; case R.id.button3: Intent intent3 = new Intent(ShoppingActivity.this, ConsultActivity.class); startActivity(intent3); overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out); finish(); break; } } // @Override public void onClick(View v) { switch (v.getId()){ case R.id.add: db = myHelper.getWritableDatabase(); name = et_name.getText().toString(); price = et_price.getText().toString(); number = et_number.getText().toString(); ContentValues values = new ContentValues(); //创建ContentValues对象 values.put("name", name); //将数据添加到ContentValues对象 values.put("price", price); values.put("number", number); db.insert("cart", null, values); db.close(); Toast.makeText(this, "信息已添加", Toast.LENGTH_SHORT).show(); break; case R.id.query: Log.e("yanwenhua","123"); List<CartBean> list = new ArrayList(); db = myHelper.getWritableDatabase(); Cursor cursor = db.query("cart", null, null, null, null, null, null); if (cursor.getCount() == 0) { Toast.makeText(this, "没有数据", Toast.LENGTH_SHORT).show(); } else { while (cursor.moveToNext()) { CartBean cartBean = new CartBean(); int nameIndex = cursor.getColumnIndex("name"); int priceIndex = cursor.getColumnIndex("price"); int numberIndex = cursor.getColumnIndex("number"); String name = cursor.getString(nameIndex); String price = cursor.getString(priceIndex); String number = cursor.getString(numberIndex); Log.e("yanwenhua","cursor.getCount();--"+cursor.getCount()+"name-"+name+" "+price+" "+number); cartBean.setName(name); cartBean.setPrice(price); cartBean.setNumber(number); list.add(cartBean); } CartAdapter adapter = new CartAdapter(ShoppingActivity.this,list); listView.setAdapter(adapter); adapter.notifyDataSetChanged(); } cursor.close(); db.close(); break; case R.id.update: name = et_name.getText().toString(); price = et_price.getText().toString(); number = et_number.getText().toString(); db = myHelper.getWritableDatabase(); values = new ContentValues(); // 要修改的数据 values.put("number",number); values.put("price",price); db.update("cart", values, "name=?", new String[]{name}); // 更新并得到行数 db.close(); Toast.makeText(this, "信息已修改", Toast.LENGTH_SHORT).show(); break; case R.id.delete: db = myHelper.getWritableDatabase(); db.delete("cart", null, null); List<CartBean> list2 = new ArrayList(); CartAdapter adapter = new CartAdapter(ShoppingActivity.this,list2); listView.setAdapter(adapter); adapter.notifyDataSetChanged(); db.close(); Toast.makeText(this, "信息已删除", Toast.LENGTH_SHORT).show(); break; } } } 2.6资讯页面 package com.example.onlinestore; import android.content.Intent; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; public class ConsultActivity extends AppCompatActivity { public void zhuan(View v) { switch (v.getId()) { case R.id.button5: Intent intent = new Intent(ConsultActivity.this, ShouOneActivity.class); startActivity(intent); overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out); finish(); break; case R.id.button4: Intent intent3 = new Intent(ConsultActivity.this, ShoppingActivity.class); startActivity(intent3); overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out); finish(); break; } } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_consult); } } 2.7MyHelper package com.example.onlinestore; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; class MyHelper extends SQLiteOpenHelper { public MyHelper(Context context) { super(context, "shoppingcart.db", null, 1); } @Override public void onCreate(SQLiteDatabase db) { db.execSQL("CREATE TABLE cart(_id INTEGER PRIMARY KEY AUTOINCREMENT, name VARCHAR(20), price VARCHAR(20), number VARCHAR(20))"); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { } } 2.8 CartAdapter package com.example.onlinestore; import android.content.Context; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.TextView; import java.util.List; public class CartAdapter extends BaseAdapter { private List<CartBean> list; private LayoutInflater layoutInflater; public CartAdapter(Context context, List<CartBean> list){ this.layoutInflater = LayoutInflater.from(context); this.list = list; } @Override public int getCount() { Log.e("yanwenhua","list.size()--"+list.size()); return list.size(); } @Override public Object getItem(int position) { return null; } @Override public long getItemId(int position) { return 0; } @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder viewHolder; if (convertView==null){ convertView=layoutInflater.inflate(R.layout.listview_item,null); viewHolder=new ViewHolder(convertView); convertView.setTag(viewHolder); }else { viewHolder=(ViewHolder) convertView.getTag(); } CartBean cartBean = list.get(position); viewHolder.tv_name.setText("商品名称:"+cartBean.getName()); viewHolder.tv_price.setText("商品价格:"+cartBean.getPrice()); viewHolder.tv_number.setText("商品数量:"+cartBean.getNumber()); Log.e("yanwenhua","cartBean.getName()-"+cartBean.getName()+" "+cartBean.getPrice()+" "+cartBean.getNumber()); return convertView; } class ViewHolder{ TextView tv_name; TextView tv_price; TextView tv_number; public ViewHolder(View view){ tv_name = (TextView) view.findViewById(R.id.tv_name); tv_price = (TextView) view.findViewById(R.id.tv_price); tv_number = (TextView) view.findViewById(R.id.tv_number); } } } 2.9 CartBean package com.example.onlinestore; public class CartBean { private String name; private String price; private String number; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPrice() { return price; } public void setPrice(String price) { this.price = price; } public String getNumber() { return number; } public void setNumber(String number) { this.number = number; } }