1、布局文件Listview

<?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=".WriteAndReadActivity"><android.support.constraint.Guidelineandroid:id="@+id/guideline3"android:layout_width="wrap_content"android:layout_height="wrap_content"android:orientation="horizontal"app:layout_constraintGuide_percent="0.8" /><android.support.constraint.Guidelineandroid:id="@+id/guideline5"android:layout_width="wrap_content"android:layout_height="wrap_content"android:orientation="horizontal"app:layout_constraintGuide_percent="0.9" /><Buttonandroid:id="@+id/button5"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginTop="8dp"android:layout_marginEnd="8dp"android:text="返回"app:layout_constraintBottom_toTopOf="@+id/guideline5"app:layout_constraintEnd_toEndOf="parent"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toTopOf="@+id/guideline5" /><ScrollViewandroid:id="@+id/scrollView2"android:layout_width="0dp"android:layout_height="0dp"android:fillViewport="true"android:orientation="vertical"app:layout_constraintBottom_toTopOf="@+id/guideline3"app:layout_constraintEnd_toEndOf="parent"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toTopOf="parent"><LinearLayoutandroid:layout_width="fill_parent"android:layout_height="fill_parent"android:orientation="vertical"><ListViewandroid:id="@+id/listView"android:layout_width="fill_parent"android:layout_height="fill_parent"android:layout_marginStart="8dp"android:layout_marginTop="8dp"android:layout_marginEnd="8dp" /></LinearLayout></ScrollView></android.support.constraint.ConstraintLayout>

2、listview_item布局文件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="fill_parent"android:layout_height="fill_parent"android:padding="10dp"android:minHeight="100dp"><TextViewandroid:id="@+id/textView_list_item_id"android:layout_width="0dp"android:layout_height="wrap_content"android:layout_weight="1"android:gravity="center"android:text=""/><TextViewandroid:id="@+id/textView_list_item_epc"android:layout_width="0dp"android:layout_height="wrap_content"android:layout_marginRight="10dp"android:layout_weight="1"android:gravity="center"android:textSize="10sp"android:text=""/><TextViewandroid:id="@+id/textView_list_item_sku"android:layout_width="0dp"android:layout_height="wrap_content"android:layout_weight="1"android:gravity="center"android:textSize="10sp"android:text=""/><TextViewandroid:id="@+id/textView_list_item_filename"android:layout_width="0dp"android:layout_height="wrap_content"android:layout_weight="1"android:text="文件名"android:gravity="center"android:textSize="10sp"/><TextViewandroid:id="@+id/textView_list_item_state"android:layout_width="0dp"android:layout_height="wrap_content"android:layout_weight="1"android:text="状态"android:gravity="center"android:textSize="10sp"/><Buttonandroid:id="@+id/textView_list_btn_read"android:layout_width="0dp"android:layout_height="wrap_content"android:gravity="center"android:text="读"android:layout_weight="1" /><Buttonandroid:id="@+id/textView_list_btn_write"android:layout_width="0dp"android:layout_height="wrap_content"android:gravity="center"android:text="写"android:layout_weight="1" /></LinearLayout>

3、Activity

package com.example.uhftopdf;import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.Button;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.Toast;import com.example.uhftopdf.com.ReadWriteAdapter;
import com.example.uhftopdf.com.bean.CabinetInfo;
import com.example.uhftopdf.com.db.DatabaseAccess;import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;public class WriteAndReadActivity extends AppCompatActivity {private static final String TAGNAME = "WriteAndReadActivity";private Button btn;private ListView lv;private DatabaseAccess dao;private ArrayList<Map<String, Object>> listMap;private List<CabinetInfo> cabinetInfos;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_write_and_read);btn = findViewById(R.id.button5);lv = findViewById(R.id.listView);dao = DatabaseAccess.getInstance(WriteAndReadActivity.this);cabinetInfos = dao.getAll();Log.e(TAGNAME,"----------11111-------epc=:"+cabinetInfos.size());show();lv.setOnItemClickListener(new ReadWriterItemClickListener());btn.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {Intent intent = new Intent(WriteAndReadActivity.this,MainActivity.class);startActivity(intent);}});}@Overrideprotected void onDestroy() {super.onDestroy();}private void show() {ReadWriteAdapter adapter = new ReadWriteAdapter(this,cabinetInfos,R.layout.listview_item,dao);lv.setAdapter(adapter);}public class ReadWriterItemClickListener implements AdapterView.OnItemClickListener{@Overridepublic void onItemClick(AdapterView<?> parent, View view, int position, long id) {ListView lView = (ListView)parent;CabinetInfo car = (CabinetInfo)lView.getItemAtPosition(position);
//            Toast.makeText(getApplicationContext(),p.getName(),0).show();}}}

4、java bean

package com.example.uhftopdf.com.bean;public class CabinetInfo {public static final String EPC = "epc";public static final String SKU = "sku";public static final String ID = "id";public static final String FILENAME = "filename";public static final String SAVEPATH = "savepath";public static final String STATE = "state";private String id;private String epc;private String sku;private String state;private String filename;private String savePath;public CabinetInfo() {}public CabinetInfo(String id,String filename,String epc, String sku,String savePath, String state ) {this.epc = epc;this.sku = sku;this.id = id;this.filename = filename;this.savePath = savePath;this.state = state;}public CabinetInfo(String epc, String sku, String state, String filename, String savePath) {this.epc = epc;this.sku = sku;this.filename = filename;this.savePath = savePath;this.state = state;}public String getEPC() {return epc;}public  String getSKU() {return sku;}public String getID() {return id;}public String getFILENAME() {return filename;}public  String getSavePath() {return savePath;}public void setSavePath(String savePath) {this.savePath = savePath;}public String getSTATE() {return state;}public String getEpc() {return epc;}public void setEpc(String epc) {this.epc = epc;}public String getSku() {return sku;}public void setSku(String sku) {this.sku = sku;}public String getId() {return id;}public void setId(String id) {this.id = id;}public String getFilename() {return filename;}public void setFilename(String filename) {this.filename = filename;}public void setState(String state) {this.state = state;}@Overridepublic String toString() {return "CabinetInfo{" +"id='" + id + '\'' +", epc='" + epc + '\'' +", sku='" + sku + '\'' +", state='" + state + '\'' +", filename='" + filename + '\'' +", savePath='" + savePath + '\'' +'}';}
}

5、MySqliteOpenHelper

package com.example.uhftopdf.com.db;import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.database.sqlite.SQLiteDatabase.CursorFactory;public class MySqliteOpenHelper extends SQLiteOpenHelper {public static final int DB_VERSION = 22;public static final String DB_NAME = "Store_CabinetInfo.db";public final static String TB_TAGINFO = "tb_taginfo";public final static String TB_EPC = "tb_epc";public MySqliteOpenHelper(Context context, String name, CursorFactory factory, int version) {super(context, name, factory, version);}@Overridepublic void onCreate(SQLiteDatabase db) {CREATE(db);CREATETableEPC(db);}@Overridepublic void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {}public void CREATE(SQLiteDatabase db) {db.execSQL("CREATE  TABLE IF NOT EXISTS tb_taginfo(id integer primary key autoincrement,filename varchar(60),epc varchar(60),sku varchar(60),savepath varchar2(120),state varchar(5))");}public void CREATETableEPC(SQLiteDatabase db) {db.execSQL("CREATE  TABLE IF NOT EXISTS tb_epc(id integer primary key autoincrement,sku char(24),epc char(32),serNum int)");}
}

6、DatabaseAccess

package com.example.uhftopdf.com.db;import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;import com.example.uhftopdf.com.bean.CabinetInfo;import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;public class DatabaseAccess {private final List<String> TAGUID = new ArrayList<String>();private final List<String> SERVICEUID = new ArrayList<String>();private final List<String> SERVICESKU = new ArrayList<String>();private final StringBuffer DATA = new StringBuffer();private Map<String, Integer> map_sku = new HashMap();boolean su;private static MySqliteOpenHelper mSqliteOpenHelper;private SQLiteDatabase db;private static DatabaseAccess dbAccess;private static Context mcontext;public static synchronized DatabaseAccess getInstance(Context context) {if (dbAccess == null) {mcontext = context;dbAccess = new DatabaseAccess(context);mSqliteOpenHelper = new MySqliteOpenHelper(context, MySqliteOpenHelper.DB_NAME, null, MySqliteOpenHelper.DB_VERSION);}return dbAccess;}private DatabaseAccess(Context context) {}public synchronized void close() {if (db != null && db.isOpen()) {db.close();}if (mSqliteOpenHelper != null) {mSqliteOpenHelper.close();}}public void clearn() {map_sku.clear();SERVICESKU.clear();TAGUID.clear();SERVICEUID.clear();DATA.delete(0, DATA.length());}public synchronized long InsertInfoToDB( String epc, String sku, String state, String filename,String savePath) {db = mSqliteOpenHelper.getWritableDatabase();ContentValues values = new ContentValues();values.put(CabinetInfo.EPC, epc);values.put(CabinetInfo.SKU, sku);values.put(CabinetInfo.STATE, state);values.put(CabinetInfo.FILENAME, filename);values.put(CabinetInfo.SAVEPATH, savePath);long rows = db.insert(MySqliteOpenHelper.TB_TAGINFO, null, values);return rows;}public synchronized int upgradetoryInfoToDB( String epc, String state) {ContentValues values = new ContentValues();values.put(CabinetInfo.STATE, state);int rows = db.update(MySqliteOpenHelper.TB_TAGINFO, values, "EPC=?", new String[]{epc});return rows;}public String getCount(String epc) {String count = "";Cursor cursor = null;try {db = this.mSqliteOpenHelper.getWritableDatabase();cursor = db.rawQuery("select * from TB_TAGINFO  where  epc=?", new String[]{ epc});// cursor = db.query(MySqliteOpenHelper.TB_TAGINFO, new String[]{"inventoryNum", "sku"}, "inventoryNum=? and sku=?", new String[]{SetOdd_Numbers, sku}, null, null, null);for (cursor.moveToFirst(); !cursor.isAfterLast(); cursor.moveToNext()) {count = cursor.getString(cursor.getColumnIndex("epc"));}} catch (Exception e) {e.printStackTrace();} finally {if (cursor != null) {cursor.close();}}return count;}public synchronized boolean AllDataIsRepeat(String epc) {su = false;Cursor cursor = null;try {db = this.mSqliteOpenHelper.getWritableDatabase();cursor = db.query(MySqliteOpenHelper.TB_TAGINFO, new String[]{"epc"}, "epc=?", new String[]{epc}, null, null, null);if (cursor != null && cursor.moveToNext()) {su = true;} else {su = false;}} catch (Exception e) {// TODO: handle exception} finally {if (cursor != null) {cursor.close();}}return su;}/*** 删除整个数据库** @return*/public synchronized int delAllFromTAGINFO() {db = mSqliteOpenHelper.getWritableDatabase();int num = db.delete(MySqliteOpenHelper.TB_TAGINFO, null, null);return num;}public synchronized int delFromTAGINFO(String epc) {db = mSqliteOpenHelper.getWritableDatabase();int num = db.delete(MySqliteOpenHelper.TB_TAGINFO, "epc=?", new String[]{epc});return num;}public synchronized List<CabinetInfo> getAll() {List<CabinetInfo> infoList = new ArrayList<>();db = mSqliteOpenHelper.getWritableDatabase();String sql = "select * from " + MySqliteOpenHelper.TB_TAGINFO ;Cursor cursor = db.rawQuery(sql, null);if (cursor != null && cursor.getCount() > 0) {while (cursor.moveToNext()) {String id = cursor.getString(0);String filename = cursor.getString(1);String epc = cursor.getString(2);String sku = cursor.getString(3);String savepath = cursor.getString(4);String state = cursor.getString(5);CabinetInfo info = new CabinetInfo(id,filename, epc, sku, savepath, state);infoList.add(info);}}if (cursor != null)cursor.close();return infoList;}public synchronized CabinetInfo getCabByEpc(String epc) {db = mSqliteOpenHelper.getWritableDatabase();String sql = "select * from " + MySqliteOpenHelper.TB_TAGINFO +" where epc='"+epc+"'";Cursor cursor = db.rawQuery(sql, null);if (cursor != null && cursor.getCount() > 0) {while (cursor.moveToNext()) {String id = cursor.getString(0);String filename = cursor.getString(1);String tempEpc = cursor.getString(2);String sku = cursor.getString(3);String savepath = cursor.getString(4);String state = cursor.getString(5);CabinetInfo info = new CabinetInfo(id,filename, tempEpc, sku, savepath, state);return info;}}if (cursor != null)cursor.close();return null;}public synchronized CabinetInfo getCabBySku(String sku) {db = mSqliteOpenHelper.getWritableDatabase();String sql = "select * from " + MySqliteOpenHelper.TB_TAGINFO +" where sku='"+sku+"'";Cursor cursor = db.rawQuery(sql, null);if (cursor != null && cursor.getCount() > 0) {while (cursor.moveToNext()) {String id = cursor.getString(0);String filename = cursor.getString(1);String tempEpc = cursor.getString(2);String strSku = cursor.getString(3);String savepath = cursor.getString(4);String state = cursor.getString(5);CabinetInfo info = new CabinetInfo(id,filename, tempEpc, strSku, savepath, state);return info;}}if (cursor != null)cursor.close();return null;}
}

7、ReadWriteAdapter

package com.example.uhftopdf.com;import android.content.Context;
import android.graphics.Color;
import android.os.Environment;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.SimpleAdapter;
import android.widget.TextView;
import android.widget.Toast;import com.android.hdhe.uhf.reader.UhfReader;
import com.android.hdhe.uhf.readerInterface.TagModel;
import com.example.uhftopdf.MainActivity;
import com.example.uhftopdf.R;
import com.example.uhftopdf.com.bean.CabinetInfo;
import com.example.uhftopdf.com.db.DatabaseAccess;
import com.example.uhftopdf.com.util.SoundUtil;
import com.example.uhftopdf.com.util.StringUtil;import java.io.File;
import java.util.List;
import java.util.Map;import cn.pda.serialport.Tools;public class ReadWriteAdapter extends BaseAdapter {public static final String PWD = "00000000";public int membank = UhfReader.MEMBANK_EPC;private int addr = 2;// begin addressprivate List<CabinetInfo> cabinetInfos;private int resource;private LayoutInflater inflater;private Context context;private UhfReader manager;private String readEpc;private int length = 8;private DatabaseAccess dao;public ReadWriteAdapter(Context context,List<CabinetInfo> cabinetInfos, int resource) {this.context = context;this.cabinetInfos = cabinetInfos;this.resource = resource;manager = UhfReader.getInstance();inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);}public ReadWriteAdapter(Context context,List<CabinetInfo> cabinetInfos, int resource,DatabaseAccess dao) {this.context = context;this.cabinetInfos = cabinetInfos;this.resource = resource;this.dao = dao;manager = UhfReader.getInstance();inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);}@Overridepublic int getCount() {return cabinetInfos.size();}@Overridepublic Object getItem(int position) {return cabinetInfos.get(position);}@Overridepublic long getItemId(int position) {return position;}@Overridepublic View getView(int position, View convertView, ViewGroup parent) {if(convertView==null){convertView = inflater.inflate(resource,null);}TextView idView = (TextView)convertView.findViewById(R.id.textView_list_item_id);TextView epcView = (TextView)convertView.findViewById(R.id.textView_list_item_epc);TextView filenameView = (TextView)convertView.findViewById(R.id.textView_list_item_filename);TextView skuView = (TextView)convertView.findViewById(R.id.textView_list_item_sku);TextView stateView = (TextView)convertView.findViewById(R.id.textView_list_item_state);Button readBtn = (Button)convertView.findViewById(R.id.textView_list_btn_read);Button writeBtn = (Button)convertView.findViewById(R.id.textView_list_btn_write);final CabinetInfo p = cabinetInfos.get(position);final int pos = position;idView.setText((position+1)+"");epcView.setText(p.getEPC());filenameView.setText(p.getFilename());skuView.setText(p.getSku());Log.d("Test", "----------------p.getSTATE()---------------"+p.getSTATE());if("0".equals(p.getSTATE())){stateView.setTextColor(Color.RED);stateView.setText("未写" );}else{stateView.setTextColor(Color.GREEN);stateView.setText( "已写");}//读操作readBtn.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {
//                Toast.makeText(context,"读",Toast.LENGTH_SHORT).show();read();}});//写操作writeBtn.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {
//                Toast.makeText(context,"写",Toast.LENGTH_SHORT).show();String epc = p.getEPC();Log.d("Test", "----------------epc---------------"+epc);write(p.getEPC(),pos);}});return convertView;}private void read(){byte[] accessPassword = Tools.HexString2Bytes(PWD);byte[] data = manager.readFrom6C(membank, addr, length, accessPassword);Log.e("Test","-----------------manager=:"+manager);Log.e("Test","----------11111-------data=:"+data);Log.e("Test","----------11111-------(data != null )=:"+(data != null ));Log.e("Test","----------11111-------(data.length > 1)=:"+( data.length > 1));Log.e("Test","----------11111-------(data != null && data.length > 1)=:"+(data != null && data.length > 1));if (data != null && data.length > 1) {readEpc = Tools.Bytes2HexString(data, data.length);Toast.makeText(context,readEpc,Toast.LENGTH_LONG).show();}else{
//            Toast.makeText(context,readEpc,Toast.LENGTH_LONG).show();Toast.makeText(context,"读取失败",Toast.LENGTH_LONG).show();}}private void write(String epc,int position){if(readEpc==null || "".equals(readEpc)){Toast.makeText(context,"请先扫描标签",Toast.LENGTH_LONG).show();return;}Log.d("Test", "----------------readEpc---------------"+readEpc);Log.e("Test","-----------------manager=:"+manager);manager.selectEPC(Tools.HexString2Bytes(readEpc));byte[] accessPassword = Tools.HexString2Bytes(PWD);if (accessPassword.length != 4) {Toast.makeText(context,"写入密码错误",Toast.LENGTH_LONG).show();return;}String writeData = epc;Log.d("Test", "----------------writeData---------------"+writeData);if (writeData.length() % 4 != 0) {Toast.makeText(context,"写入数据字节数错误",Toast.LENGTH_LONG).show();return;}byte[] dataBytes = Tools.HexString2Bytes(writeData);// dataLen = dataBytes/2 dataLenLog.d("Test", "----------------accessPassword---------------"+accessPassword);Log.d("Test", "----------------membank---------------"+membank);Log.d("Test", "----------------addr---------------"+addr);boolean writeFlag = manager.writeTo6C(accessPassword, membank,addr, dataBytes.length / 2, dataBytes);if (writeFlag) {CabinetInfo cab = cabinetInfos.get(position);dao.upgradetoryInfoToDB(writeData,"1");cab.setState("1");update(position, cab);Toast.makeText(context,"写入成功",Toast.LENGTH_LONG).show();} else {Toast.makeText(context,"写入失败",Toast.LENGTH_LONG).show();}}//实时更新ListView数据private void update(int position,CabinetInfo cabinetInfo){cabinetInfos.set(position,cabinetInfo);this.notifyDataSetChanged();}}

android ListView中含有按钮事件实时更新ListView数据案例-1相关推荐

  1. android监听器在哪里创建,[转载]android开发中创建按钮事件监听器的几种方法

    第一种:匿名内部类作为事件监听器类 Button button=(Button) findViewById(R.id.button); button.setOnClickListener(new On ...

  2. Android Listview中Button按钮点击事件冲突解决办法

    今天做项目时,ListView中含有了Button组件,心里一早就知道肯定会有冲突,因为以前就遇到过,并解决过,可惜当时没有记录下来. 今天在做的时候,继续被这个问题郁闷了一把,后来解决后,赶紧来记录 ...

  3. matlab中run按钮是灰色的,Android Studio中Run按钮是灰色的快速解决方法

    首先是,在不同的AS中,gradle版本不同,下载的sdk版本不同,这些,都在gradle(Project.Models)相关代码里调过来就好.之前的文章里有说过. 经过调好gradle这些文件,AS ...

  4. android开发之添加按钮事件的方法

    目标: 上一篇中介绍了如何播放音乐,现在要求点击按钮后就开始播放. 解决方法: 1. 在res/layout中的activity_main.xml添加一个按钮,命名为button1. 2. 在Main ...

  5. ListView中含有EditText时候--要命的焦点问题迎刃而解

    最近做项目的时候遇到了一个问题,就是在ListView的item上面含有一个EditText,要求是这样:1当点击item的时候,item可以点击;2当点击EditText的时候EditText也可以 ...

  6. html中单击按钮事件,处理C++代码中的HTML按钮单击事件

    我有一个Windows本机C++/Win32/MFC对话框应用程序.我正在使用对话框中的IE ActiveX控件来呈现一些HTML内容.正在呈现的HTML包含一个按钮.该按钮具有onClick Jav ...

  7. android 路径中含有中文的解决方法

    经常会从其他文件浏览器打开,文件路径中可能会含有中文字符,这时直接用路径打开中文会变为乱码导致出现FileNotFoundException,不能达到本来目的,这时需要对路径进行解码,在网上搜到的方法 ...

  8. 在html中搜索按钮事件,html中button绑定点击事件的几种方法介绍

    HTML中为button绑定事件的方式有三种. 例如以下标签: submit 一.使用jquery进行绑定$('#btn_submit').click(function(){ }); 二.使用原生js ...

  9. 【苹果相册推送】软件安装表现到ListView中,把网络请求来的数据存储下来

    推荐内容IMESSGAE相关 作者推荐内容 iMessage苹果推软件 *** 点击即可查看作者要求内容信息 作者推荐内容 1.家庭推内容 *** 点击即可查看作者要求内容信息 作者推荐内容 2.相册 ...

最新文章

  1. Eclipse中10个最有用的快捷键组合
  2. 一起学 c++(二)
  3. Linux-Android系统启动之INIT进程和system v init
  4. Autofac的切面编程实现
  5. php 变量文件间传递,同一文件的两个JS函数之间如何传变量?
  6. webServlet(/) 和 webServlet(/*) 的区别
  7. 微软从安卓那里获取的盈利比重WinPhone 7还多
  8. 方维P2P添加富友金账户接口实例
  9. Ubuntu18.04安装网络调试助手 NetAssist
  10. 手把手教您编写第一个单片机程序
  11. centos安装部署webssh
  12. Word怎么撤销到上一步操作
  13. 初级计算机英语,初级英语口语怎么学?
  14. 大学c语言基础知识必备大全,大学 C语言基础知识.ppt
  15. 二十岁,无资本,无未来 --《意林》
  16. C语言函数讲义,C语言讲义——指针函数和函数指针
  17. 2018北大cls夏令营经历
  18. 单片机串口高效收发数据的实现方法
  19. Android Studio中配置及使用OpenCV示例(一),android应用案例开发大全第四版源码
  20. 鸿蒙为什么翻译成harmony,鸿蒙的英文名为什么取的是Harmony

热门文章

  1. 数据挖掘机器学习[六]---项目实战金融风控之贷款违约预测
  2. 第9章第8节:制作过渡页幻灯片的版式 [PowerPoint精美幻灯片实战教程]
  3. Ubuntu下有线连接开无线WIFI的3种方式
  4. python open unicodedecodeerror_python 读取文件时报错UnicodeDecodeError: 'gbk' co
  5. 扩展正则表达式之加号
  6. 如何看待北大硕士买米粉事件?听听广东亨盛维嘉怎么说
  7. 计算机无法打开优盘,电脑插入u盘后打不开如何修复
  8. 【SSH系列】---Hibernate的基本映射
  9. HIR夏季挑战赛作品紧急优化
  10. 「4+1视图」学习与理解