最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android實(shí)現(xiàn)商品展示效果

 更新時(shí)間:2017年05月19日 14:42:32   作者:愛吃蛋糕的南宮滕逸  
這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)商品展示效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

一、 創(chuàng)建手機(jī)界面布局

創(chuàng)建一個(gè)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:paddingBottom="@dimen/activity_vertical_margin"
 android:paddingLeft="@dimen/activity_horizontal_margin"
 android:paddingRight="@dimen/activity_horizontal_margin"
 android:paddingTop="@dimen/activity_vertical_margin"
 tools:context="com.example.bz0209.shopshowdemo.activity_main"
 android:orientation="vertical">
 <LinearLayout
 android:layout_width="match_parent"
 android:layout_height="wrap_content">

 <EditText
 android:id="@+id/etName"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:hint="商品名稱"
 android:inputType="text"
 android:layout_weight="1"
 />
 <EditText
 android:id="@+id/etAmount"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:hint="商品金額"
 android:inputType="number"
 android:layout_weight="1"
 />
 <ImageView
 android:id="@+id/ivAdd"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:onClick="addGoods"
 android:inputType="text"
 android:src="@android:drawable/ic_input_add"
 />
 </LinearLayout>
 <ListView
 android:id="@+id/lvGoods"
 android:layout_width="match_parent"
 android:layout_height="match_parent">

 </ListView>
</LinearLayout>

效果圖如下:

二、創(chuàng)建一個(gè)存儲展示的xml文件

創(chuàng)建一個(gè)名為item.xml的布局文件,代碼如下:

<?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">
 <TextView
 android:text="1"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:id="@+id/tvId"
 android:textSize="20sp"
 android:layout_weight="2"

 />
 <TextView
 android:text="商品名稱"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:id="@+id/tvName"
 android:textSize="20sp"
 android:layout_weight="2"

 />
 <TextView
 android:text="金額"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:id="@+id/tvAmount"
 android:textSize="20sp"
 android:layout_weight="2"
 />
 <ImageView
  android:id="@+id/ivUP"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:src="@android:drawable/arrow_up_float"
  />
 <ImageView
  android:id="@+id/ivDown"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:src="@android:drawable/arrow_down_float"
  />
 <ImageView
  android:id="@+id/ivDelete"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:src="@android:drawable/arrow_down_float"
  />
</LinearLayout>

三、創(chuàng)建數(shù)據(jù)庫

在com.example.bz0209.shopshowdemo 的包下創(chuàng)建一個(gè)名為db的包,并在該包下定義一個(gè)dbHelper類繼承自SQLiteOpenHelper,創(chuàng)建數(shù)據(jù)庫代碼如下:

package com.example.bz0209.shopshowdemo.db;

import android.content.Context;

import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

/**
 * Created by Administrator on 2017/4/28.
 */

public class DBHelper extends SQLiteOpenHelper{
 public static final String CREATE_GOODS="create table goods(_id integer primary key autoincrement,name varchar(20),amount integer)";
 public DBHelper(Context context,int version){
 super(context,"goods.db",null,version);
 }
 @Override
 public void onCreate(SQLiteDatabase db) {
 db.execSQL(CREATE_GOODS);
 }

 @Override
 public void onUpgrade(SQLiteDatabase db,int oldVersion,int newVersion) {
 }
}

四、創(chuàng)建GoodsAdapter類

為了操作數(shù)據(jù)庫方便,創(chuàng)建一個(gè)GoodsAdapter類。因此需要在com.example.bz0209.shopshowdemo 的包下創(chuàng)建一個(gè)名為entity的包,然后在com.example.bz0209.shopshowdemo.entityd的包下定義一個(gè)GoodsAdapter類,代碼如下:

package com.example.bz0209.shopshowdemo;

import android.content.Context;
import android.support.annotation.NonNull;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.TextView;

import com.example.bz0209.shopshowdemo.entity.Goods;

import java.util.List;

/**
 * Created by Administrator on 2017/4/27.
 */

public class GoodsAdapter extends ArrayAdapter<Goods>{
 private int resounceId;

 public GoodsAdapter(Context context, int resource, List<Goods> objects) {
 super(context, resource, objects);
 resounceId=resource;
 }

 @NonNull
 @Override
 public View getView(int position, View convertView, ViewGroup parent) {
 Goods goods=getItem(position);
 View view=null;
 ViewHolder viewHolder;
 if (convertView==null){
  view = LayoutInflater.from(getContext()).inflate(resounceId,null);
  viewHolder =new ViewHolder();
  viewHolder.tvId=(TextView) view.findViewById(R.id.tvId);
  viewHolder.tvName=(TextView) view.findViewById(R.id.tvName);
  viewHolder.tvAmount=(TextView) view.findViewById(R.id.etAmount);
  viewHolder.ivUp=(ImageView) view.findViewById(R.id.ivUP);
  viewHolder.ivDown=(ImageView) view.findViewById(R.id.ivDown);
  viewHolder.ivDelete=(ImageView) view.findViewById(R.id.ivDelete);
  view.setTag(viewHolder);
 }else {
  view=convertView;
  viewHolder=(ViewHolder) view.getTag();
 }
 viewHolder.tvId.setText(goods.getId()+"");
 viewHolder.tvName.setText(goods.getName());
 viewHolder.tvAmount.setText(goods.getAmount()+"");

 return view;
 }
 class ViewHolder{
 TextView tvId;
 TextView tvName;
 TextView tvAmount;
 ImageView ivUp;
 ImageView ivDown;
 ImageView ivDelete;
 }
}

五、創(chuàng)建數(shù)據(jù)操作邏輯類

在com.example.bz0209.shopshowdemo 的包下創(chuàng)建一個(gè)名為dao的包,并創(chuàng)建一個(gè)名為GoodsDao的類,用于操作數(shù)據(jù)。代碼如下:

public class GoodsDao {
 private DBHelper dbHelper;


 public GoodsDao(Context context){
 dbHelper=new DBHelper(context,1);
 }

 public void add(Goods goods){
 SQLiteDatabase sqLiteDatabase=dbHelper.getWritableDatabase();
 ContentValues values=new ContentValues();
 values.put("name",goods.getName());
 values.put("amount",goods.getAmount());
 sqLiteDatabase.insert("goods",null,values);
 sqLiteDatabase.close();


 }
 public int delete(long id){
 SQLiteDatabase sqLiteDatabase=dbHelper.getWritableDatabase();
 int count=sqLiteDatabase.delete("goods","id=?",new String[]{id+""});
 sqLiteDatabase.close();
 return count;

 }
 public int update(Goods goods){
 SQLiteDatabase sqLiteDatabase=dbHelper.getWritableDatabase();
 ContentValues values=new ContentValues();
 values.put("name",goods.getName());
 values.put("amount",goods.getAmount());
 int count=sqLiteDatabase.update("goods",values,"id=?",new String[]{goods.getId()+""});
 sqLiteDatabase.close();
 return count;
 }
 public List<Goods> queryAll(){
 List<Goods>goodsList=new ArrayList<>();
 SQLiteDatabase sqLiteDatabase=dbHelper.getReadableDatabase();
 Cursor cursor=sqLiteDatabase.query("goods",null,null,null,null,null,"amount desc");
 while (cursor.moveToNext()){
  long id=cursor.getLong(cursor.getColumnIndex("_id"));
  String name=cursor.getString(cursor.getColumnIndex("name"));
  int amount=cursor.getInt(cursor.getColumnIndex("amount"));
  Goods goods=new Goods(name,amount);
  goodsList.add(goods);
 }
 cursor.close();
 sqLiteDatabase.close();
 return goodsList;
 }

}

六、編寫界面交互代碼

數(shù)據(jù)庫操作完成后,需要界面與數(shù)據(jù)庫進(jìn)行交互,用于實(shí)現(xiàn)將數(shù)據(jù)庫中的數(shù)據(jù)以ListView的形式展現(xiàn)在界面上具體代碼如下:

package com.example.bz0209.shopshowdemo;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.ListView;
import com.example.bz0209.shopshowdemo.dao.GoodsDao;
import com.example.bz0209.shopshowdemo.entity.Goods;
import java.util.List;
public class activity_main extends AppCompatActivity {
 private EditText etName;
 private EditText etAmount;
 private ListView lvGoods;
 private GoodsAdapter goodsAdapter;
 private GoodsDao goodsDao;
 private List<Goods>goodsList;
 @Override
 protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.activity_main);
 etName=(EditText)findViewById(R.id.etName);
 etAmount=(EditText)findViewById(R.id.etAmount);
 lvGoods=(ListView)findViewById(R.id.lvGoods);
 goodsDao=new GoodsDao(this);
 goodsList=goodsDao.queryAll();
 goodsAdapter=new GoodsAdapter(this,R.layout.item,goodsList);
 lvGoods.setAdapter(goodsAdapter);
 }
 public void addGoods(View view){
 String name=etName.getText().toString();
 String amount=etAmount.getText().toString();
 Goods goods=new Goods(name,amount.equals("")?0:Integer.parseInt(amount));
 goodsDao.add(goods);

 }
}

七、完成后的結(jié)果展示

(1)創(chuàng)建起數(shù)據(jù)庫的圖為:

(2)最后的運(yùn)行結(jié)果圖:

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Android使用Intent傳遞組件大數(shù)據(jù)

    Android使用Intent傳遞組件大數(shù)據(jù)

    這篇文章主要介紹了Android使用Intent傳遞組件大數(shù)據(jù),文章圍繞主題展開詳細(xì)的內(nèi)容詳情,感興趣的朋友可以參考一下
    2022-07-07
  • Android圖文居中顯示控件使用方法詳解

    Android圖文居中顯示控件使用方法詳解

    這篇文章主要為大家詳細(xì)介紹了Android圖文居中顯示控件的使用方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-09-09
  • python只需30行代碼就能記錄鍵盤的一舉一動(dòng)

    python只需30行代碼就能記錄鍵盤的一舉一動(dòng)

    這篇文章主要介紹了如何用python只寫30行代碼就能記錄鍵盤的一舉一動(dòng),感興趣的同學(xué)快來看看吧,新手小白也能掌握
    2021-08-08
  • Android仿微信拍攝短視頻

    Android仿微信拍攝短視頻

    本文主要對Android仿微信拍攝短視頻的實(shí)現(xiàn)方法進(jìn)行介紹,其功能設(shè)置為類似于微信,點(diǎn)擊開始拍攝,設(shè)置最長拍攝時(shí)間。具有很好的參考價(jià)值,需要的朋友一起來看下吧
    2016-12-12
  • Android 字符串中某個(gè)字段可點(diǎn)擊和設(shè)置顏色的方法

    Android 字符串中某個(gè)字段可點(diǎn)擊和設(shè)置顏色的方法

    在android開發(fā)中,我們時(shí)常會(huì)遇到對字符串中某些固定的字段實(shí)現(xiàn)可點(diǎn)擊和顏色的設(shè)置,現(xiàn)粘貼處我在開發(fā)中如何設(shè)置這些屬性的
    2017-07-07
  • Android入門之使用OKHttp組件訪問網(wǎng)絡(luò)資源

    Android入門之使用OKHttp組件訪問網(wǎng)絡(luò)資源

    這篇文章主要為大家詳細(xì)介紹了Android如何使用OKHttp組件訪問網(wǎng)絡(luò)資源功能,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,需要的可以參考一下
    2022-12-12
  • Android中使用二級緩存、異步加載批量加載圖片完整案例

    Android中使用二級緩存、異步加載批量加載圖片完整案例

    這篇文章主要介紹了Android中使用二級緩存、異步加載批量加載圖片完整案例,本文講解了實(shí)現(xiàn)的過程以及核心代碼展示,并給出了完整項(xiàng)目源碼,需要的朋友可以參考下
    2015-06-06
  • 解決VSCode調(diào)試react-native android項(xiàng)目錯(cuò)誤問題

    解決VSCode調(diào)試react-native android項(xiàng)目錯(cuò)誤問題

    這篇文章主要介紹了VSCode調(diào)試react-native android項(xiàng)目錯(cuò)誤解決辦法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-12-12
  • Android系統(tǒng)開發(fā)中l(wèi)og的使用方法及簡單的原理

    Android系統(tǒng)開發(fā)中l(wèi)og的使用方法及簡單的原理

    LOG是廣泛使用的用來記錄程序執(zhí)行過程的機(jī)制,它既可以用于程序調(diào)試,也可以用于產(chǎn)品運(yùn)營中的事件記錄;在平時(shí)開發(fā)過程中經(jīng)常需要與log打交道,所以很有必要了解log的使用方法及簡單的原理,感興趣的朋友可以了解下啊
    2013-01-01
  • Kotlin?RecyclerView滾動(dòng)控件詳解

    Kotlin?RecyclerView滾動(dòng)控件詳解

    RecyclerView是Android一個(gè)更強(qiáng)大的控件,其不僅可以實(shí)現(xiàn)和ListView同樣的效果,還有優(yōu)化了ListView中的各種不足。其可以實(shí)現(xiàn)數(shù)據(jù)縱向滾動(dòng),也可以實(shí)現(xiàn)橫向滾動(dòng)(ListView做不到橫向滾動(dòng))。接下來講解RecyclerView的用法
    2022-12-12

最新評論

武义县| 石台县| 洛隆县| 衢州市| 郑州市| 六盘水市| 文水县| 北安市| 鄄城县| 凉城县| 彭阳县| 霍林郭勒市| 华宁县| 游戏| 昌图县| 农安县| 太湖县| 海南省| 镇雄县| 铜陵市| 阜新| 镇原县| 潜江市| 新竹县| 宝兴县| 繁昌县| 丰宁| 顺昌县| 斗六市| 嵊州市| 琼海市| 黄大仙区| 沅陵县| 长武县| 河间市| 福安市| 城步| 榆社县| 普宁市| 松阳县| 舒城县|