eoe 移动开发者论坛

 找回密码
 加入eoe

QQ登录

只需一步,快速开始

查看: 635|回复: 5
收起左侧

SQLite数据库的小例子 新手参考 大神路过就好

  [复制链接]

签到天数: 13 天

连续签到: 1 天

[LV.3]偶尔看看II

3

主题

79

帖子

792

e币
发表于 2016-1-13 11:00:34 | 显示全部楼层 |阅读模式
  1. package com.example.thebest;

  2. import android.database.Cursor;
  3. import android.database.sqlite.SQLiteDatabase;
  4. import android.os.Bundle;
  5. import android.support.design.widget.FloatingActionButton;
  6. import android.support.design.widget.Snackbar;
  7. import android.util.Log;
  8. import android.view.View;
  9. import android.support.design.widget.NavigationView;
  10. import android.support.v4.view.GravityCompat;
  11. import android.support.v4.widget.DrawerLayout;
  12. import android.support.v7.app.ActionBarDrawerToggle;
  13. import android.support.v7.app.AppCompatActivity;
  14. import android.support.v7.widget.Toolbar;
  15. import android.view.Menu;
  16. import android.view.MenuItem;
  17. import android.widget.Button;
  18. import android.widget.EditText;
  19. import android.widget.ListView;
  20. import android.widget.Toast;

  21. import com.example.thebest.adapter.AdapterList;

  22. import java.util.ArrayList;
  23. import java.util.HashMap;
  24. import java.util.Map;

  25. public class MainActivity extends AppCompatActivity
  26.         implements NavigationView.OnNavigationItemSelectedListener {

  27.     private EditText edtAddMean, edtAddWorld;
  28.     private Button btnAdd, btnBack, btnSearch;
  29.     private SQLiteDatabase db;
  30.     private ListView listWorld;
  31.     MySQLITE sqlite;
  32.     private AdapterList adapterList;
  33.     Toast toast;
  34.     ArrayList<Map<String, String>> arrayList = new ArrayList<Map<String, String>>();


  35.     @Override
  36.     protected void onCreate(Bundle savedInstanceState) {
  37.         super.onCreate(savedInstanceState);
  38.         setContentView(R.layout.activity_main);
  39.         Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
  40.         setSupportActionBar(toolbar);

  41.         FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
  42.         fab.setOnClickListener(new View.OnClickListener() {
  43.             @Override
  44.             public void onClick(View view) {
  45.                 Snackbar.make(view, "下一版本即将加入语音输入", Snackbar.LENGTH_LONG)
  46.                         .setAction("Action", null).show();

  47.             }
  48.         });

  49.         DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
  50.         ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
  51.                 this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
  52.         drawer.setDrawerListener(toggle);
  53.         toggle.syncState();

  54.         NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
  55.         navigationView.setNavigationItemSelectedListener(this);
  56.         initView();
  57.         adapterList = new AdapterList(arrayList, MainActivity.this);
  58.         listWorld.setAdapter(adapterList);
  59.         setClick();
  60.         sqlite = new MySQLITE(MainActivity.this, "world.db3", 1);
  61.         db = sqlite.getWritableDatabase();
  62.         updateList();
  63.     }

  64.     @Override
  65.     public void onBackPressed() {
  66.         DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
  67.         if (drawer.isDrawerOpen(GravityCompat.START)) {
  68.             drawer.closeDrawer(GravityCompat.START);
  69.         } else {
  70.             super.onBackPressed();
  71.         }
  72.     }

  73.     @Override
  74.     public boolean onCreateOptionsMenu(Menu menu) {
  75.         // Inflate the menu; this adds items to the action bar if it is present.
  76.         getMenuInflater().inflate(R.menu.main, menu);
  77.         return true;
  78.     }

  79.     @Override
  80.     public boolean onOptionsItemSelected(MenuItem item) {
  81.         // Handle action bar item clicks here. The action bar will
  82.         // automatically handle clicks on the Home/Up button, so long
  83.         // as you specify a parent activity in AndroidManifest.xml.
  84.         int id = item.getItemId();

  85.         //noinspection SimplifiableIfStatement
  86.         if (id == R.id.action_settings) {
  87.             return true;
  88.         }

  89.         return super.onOptionsItemSelected(item);
  90.     }

  91.     @SuppressWarnings("StatementWithEmptyBody")
  92.     @Override
  93.     public boolean onNavigationItemSelected(MenuItem item) {
  94.         // Handle navigation view item clicks here.
  95.         int id = item.getItemId();

  96.         if (id == R.id.nav_camera) {
  97.             // Handle the camera action
  98.             showToast("点击了导入功能项...我还没做啦");
  99.         } else if (id == R.id.nav_gallery) {
  100.             showToast("点击了啥啥功能 反正我都没做呢 ╭(╯^╰)╮");
  101.         } else if (id == R.id.nav_slideshow) {

  102.             showToast("这是啥功能呢 我还没想好");
  103.         } else if (id == R.id.nav_manage) {
  104.             showToast("呦呵!你倒是啥都点!");

  105.         } else if (id == R.id.nav_share) {
  106.             showToast("这破东西 就别分享了");

  107.         } else if (id == R.id.nav_send) {
  108.             showToast("有啥意见 当面提!");

  109.         }

  110.         DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
  111.         drawer.closeDrawer(GravityCompat.START);
  112.         return true;
  113.     }

  114.     private void setClick() {
  115.         btnAdd.setOnClickListener(new View.OnClickListener() {
  116.             @Override
  117.             public void onClick(View v) {
  118.                 String world = edtAddWorld.getText().toString();
  119.                 String mean = edtAddMean.getText().toString();
  120.                 if ("".equals(world) || "".equals(mean)) {
  121.                     showToast("输入不完整 请检查");
  122.                     return;
  123.                 }
  124.                 if ("del".equals(world) && "del".equals(mean)) {
  125.                     db.execSQL("delete from text where _id = 0");
  126.                     updateList();
  127.                     return;
  128.                 }
  129.                 insert(world, mean);
  130.                 updateList();

  131.             }
  132.         });
  133.         btnSearch.setOnClickListener(new View.OnClickListener() {
  134.             @Override
  135.             public void onClick(View v) {
  136.                 String strWord = edtAddWorld.getText().toString();
  137.                 String strMean = edtAddMean.getText().toString();
  138.                 if ("".equals(strWord) && "".equals(strMean)) {
  139.                     showToast("输入不完整 请检查输入");
  140.                     return;
  141.                 } else if (!"".equals(strWord) && !"".equals(strMean)) {
  142.                     showToast("您至少有一项未知才可以查询");
  143.                     return;
  144.                 }
  145.                 if (!"".equals(strWord)) {
  146.                     Cursor cursor = db.rawQuery("select * from text where world = ? ", new String[]{strWord});
  147.                     if (cursor.moveToNext()) {
  148.                         arrayList.clear();
  149.                         Map<String, String> map = new HashMap<String, String>();
  150.                         map.put("world", cursor.getString(1));
  151.                         map.put("mean", cursor.getString(2));
  152.                         arrayList.add(map);
  153.                         adapterList.notifyDataSetChanged();
  154.                     } else {
  155.                         showToast("未查到记录!");
  156.                     }
  157.                 } else {
  158.                     Cursor cursor = db.rawQuery("select * from text where mean = ?", new String[]{strMean});
  159.                     if (cursor.moveToNext()) {
  160.                         arrayList.clear();

  161.                         Map<String, String> map = new HashMap<String, String>();
  162.                         map.put("world", cursor.getString(1));
  163.                         map.put("mean", cursor.getString(2));
  164.                         arrayList.add(map);
  165.                         adapterList.notifyDataSetChanged();
  166.                     } else {
  167.                         showToast("未查到记录!");
  168.                     }
  169.                 }

  170.             }
  171.         });
  172.         btnBack.setOnClickListener(new View.OnClickListener() {
  173.             @Override
  174.             public void onClick(View v) {
  175.                 edtAddWorld.setText("");
  176.                 edtAddMean.setText("");
  177.                 updateList();
  178.             }
  179.         });
  180.     }

  181.     private void updateList() {
  182.         Cursor cursor = db.rawQuery("select * from text", null);
  183. //        ArrayList<Map<String, String>> myList = getList(cursor);
  184. //        adapterList.setListArray(myList);
  185. //        showToast(myList.size()+"");
  186.         changeArrayList(cursor, arrayList);
  187.         adapterList.notifyDataSetChanged();
  188.     }

  189.     private ArrayList<Map<String, String>> getList(Cursor cursor) {
  190.         arrayList.clear();
  191.         while (cursor.moveToNext()) {
  192.             Map<String, String> map = new HashMap<String, String>();
  193.             Log.i("LX", cursor.getInt(0) + "");
  194.             map.put("world", cursor.getString(1));
  195.             map.put("mean", cursor.getString(2));
  196.             arrayList.add(map);

  197.         }
  198.         return arrayList;
  199.     }

  200.     public void changeArrayList(Cursor cursor, ArrayList<Map<String, String>> list) {
  201.         list.clear();
  202.         while (cursor.moveToNext()) {
  203.             Map<String, String> map = new HashMap<String, String>();
  204.             Log.i("LX", cursor.getInt(0) + "");
  205.             map.put("world", cursor.getString(1));
  206.             map.put("mean", cursor.getString(2));
  207.             list.add(map);

  208.         }
  209.     }

  210.     private void initView() {
  211.         edtAddMean = (EditText) findViewById(R.id.edtAddMean);
  212.         edtAddWorld = (EditText) findViewById(R.id.edtAddWorld);
  213.         btnAdd = (Button) findViewById(R.id.btnAdd);
  214.         listWorld = (ListView) findViewById(R.id.listShow);
  215.         btnBack = (Button) findViewById(R.id.btnBack);
  216.         btnSearch = (Button) findViewById(R.id.btnSearch);

  217.     }

  218.     private void insert(String world, String mean) {
  219.         if (db == null) db = sqlite.getWritableDatabase();
  220.         db.execSQL("insert into text values (0,?,?)", new String[]{world, mean});

  221.     }

  222.     private void showToast(String msg) {
  223.         if (toast == null) {
  224.             toast = Toast.makeText(MainActivity.this, null, Toast.LENGTH_SHORT);
  225.         }
  226.         toast.setText(msg);
  227.         toast.show();

  228.     }
  229. }
复制代码
毕竟是给新手的 积分就三分好啦

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?加入eoe

x

该用户从未签到

0

主题

18

帖子

6

e币
发表于 2016-7-1 08:30:39 | 显示全部楼层
柘城封套磊  土为这 曼妙人

该用户从未签到

0

主题

18

帖子

6

e币
发表于 2016-7-1 08:42:55 | 显示全部楼层
sjf;oaijeoioafjowafijewojweoijgwjigow

该用户从未签到

0

主题

18

帖子

6

e币
发表于 2016-7-1 08:48:59 | 显示全部楼层
dfjlkjewjjoifjweofijwejfweo

签到天数: 1 天

连续签到: 1 天

[LV.1]初来乍到

0

主题

8

帖子

9

e币
发表于 2017-1-11 21:06:44 | 显示全部楼层
很好学习了!!!

签到天数: 1 天

连续签到: 1 天

[LV.1]初来乍到

0

主题

8

帖子

9

e币
发表于 2017-1-12 08:17:10 | 显示全部楼层
学习学习!!!!
*滑动验证:
您需要登录后才可以回帖 登录 | 加入eoe

本版积分规则

推荐阅读
赞助商们

QQ|联系我们|小黑屋|手机版|eoe 移动开发者论坛 ( 京ICP备11018032 京公网安11010802020210  

GMT+8, 2017-5-30 19:14 , Processed in 0.564469 second(s), 23 queries , Memcache On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表
关闭

扫一扫 关注eoe官方微信