鱼C论坛

 找回密码
 立即注册
查看: 2405|回复: 0

[技术交流] kotlin for android 之查找版主名字小案例

[复制链接]
发表于 2017-12-3 06:11:39 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
        继续修改昨天的项目,将activity_main.xml文件修改为:
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3.     xmlns:app="http://schemas.android.com/apk/res-auto"
  4.     xmlns:tools="http://schemas.android.com/tools"
  5.     android:layout_width="match_parent"
  6.     android:layout_height="match_parent"
  7.     android:orientation="vertical"
  8.     tools:context="com.example.xinwei.databasekotlin.MainActivity">

  9.     <Button
  10.         android:id="@+id/idbutton"
  11.         android:layout_width="wrap_content"
  12.         android:layout_height="wrap_content"
  13.         android:text="创建数据库并插入数据"/>
  14.     <EditText
  15.         android:id="@+id/idinputtext"
  16.         android:layout_width="match_parent"
  17.         android:layout_height="wrap_content"
  18.         android:hint="请输入要查询的人"/>
  19.     <Button
  20.         android:id="@+id/idquerybutton"
  21.         android:layout_width="wrap_content"
  22.         android:layout_height="wrap_content"
  23.         android:text="读取数据"/>
  24.     <TextView
  25.         android:id="@+id/idreadtext"
  26.         android:layout_width="wrap_content"
  27.         android:layout_height="wrap_content" />

  28. </LinearLayout>
复制代码

        将MainActivity.kt文件修改为:
  1. package com.example.xinwei.databasekotlin

  2. import android.content.ContentValues
  3. import android.database.Cursor
  4. import android.database.sqlite.SQLiteDatabase
  5. import android.database.sqlite.SQLiteQueryBuilder
  6. import android.support.v7.app.AppCompatActivity
  7. import android.os.Bundle
  8. import android.util.Log
  9. import android.widget.Toast
  10. import kotlinx.android.synthetic.main.activity_main.*

  11. class MainActivity : AppCompatActivity() {

  12.     var myDatabase:SQLiteDatabase?=null
  13.     var contentValues=ContentValues()

  14.     override fun onCreate(savedInstanceState: Bundle?) {
  15.         super.onCreate(savedInstanceState)
  16.         setContentView(R.layout.activity_main)
  17.         val myDatabaseHelper=CreateDatabase(this,"myDatabase",null,1)
  18.         myDatabase=myDatabaseHelper.writableDatabase
  19.         idbutton.setOnClickListener {
  20.             dummyDataArray.add(MyData("jerryxjr1220","30","男"))
  21.             dummyDataArray.add(MyData("wei_Y","18","男"))
  22.             dummyDataArray.add(MyData("alltolove","37","男"))
  23.             insertValues(0)
  24.             insertValues(1)
  25.             insertValues(2)
  26.         }
  27.         idquerybutton.setOnClickListener{
  28.             var inputText=idinputtext.text
  29.             var projection= arrayOf("id","name","age","gent")
  30.             var curser=queryData(projection,"name like ?", arrayOf("%${inputText}%"),"name")
  31.             if (curser.moveToFirst()){
  32.                 do {
  33.                     var id=curser.getInt(curser.getColumnIndex("id"))
  34.                     var name=curser.getString(curser.getColumnIndex("name"))
  35.                     var age=curser.getString(curser.getColumnIndex("age"))
  36.                     var gent=curser.getString(curser.getColumnIndex("gent"))
  37.                     contentValues.put("id",id)
  38.                     contentValues.put("name",name)
  39.                     contentValues.put("age",age)
  40.                     contentValues.put("gent",gent)
  41.                 }while (curser.moveToNext())
  42.                 curser.close()
  43.                 idreadtext.text=contentValues.toString()
  44.             }
  45.         }
  46.     }
  47.     fun insertValues(id:Int){
  48.         contentValues.put("name",dummyDataArray[id].name)
  49.         contentValues.put("age",dummyDataArray[id].age)
  50.         contentValues.put("gent",dummyDataArray[id].gent)
  51.         myDatabase!!.insert("MyTable","",contentValues)
  52.         contentValues.clear()
  53.         Toast.makeText(this,"数据已添加",Toast.LENGTH_SHORT).show()
  54.     }
  55.     fun queryData(projection:Array<String>?,selection:String,selectionArg:Array<String>,sorOrder:String):Cursor{
  56.         val db=SQLiteQueryBuilder()
  57.         db.tables="MyTable"
  58.         var curser=db.query(myDatabase,projection,selection,selectionArg,null,null,sorOrder)
  59.         return curser
  60.     }
  61. }
复制代码

        在queryData这个函数里就是查找数据的方法,基本都是固定格式照抄就行。因为手机输入法换成中文很麻烦,在数据库里我又新加进两个英文名字的版主。启动手机app后我们先点一下添加数据的按钮,然后在文本框里输入版主的名字就可以查找到版主的资料了,版主们的资料是我胡编的啊,可别当真 。效果图为:
jdfw.gif

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-3-29 16:07

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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