Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Android+SQLite数据库实现的生词记事本功能实例大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_450_0@本文实例讲述了Android+sqlite数据库实现的生词记事本功能分享给大家供大家参,具体如下:

@H_450_0@主activity命名为

@H_450_0@Dict:

@H_450_0@代码如下:

package example.com.myapplication;
import android.app.Activity;
import android.content.Intent;
import android.database.cursor;
import android.database.sqlite.sqliteDatabase;
import android.os.bundle;
import android.view.View;
import android.widget.button;
import android.widget.EditText;
import android.widget.Toast;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
public class Dict extends Activity
{
  MyDatabaseHelper dbHelper;
  Button insert = null;
  Button search = null;
  @Override
  public void onCreate(Bundle savedInstanceStatE)
  {
    super.onCreate(savedInstanceStatE);
    setContentView(R.layout.activity_main);
    // 创建MyDatabaseHelper对象,指定数据库版本为1,此处使用相对路径即可,
    // 数据库文件自动会保存在程序的数据文件夹的databases目录下。
    dbHelper = new MyDatabaseHelper(this,"myDict.db3",1);
    insert = (Button)findViewById(R.id.insert);
    search = (Button)findViewById(R.id.search);
    insert.setOnClickListener(new View.onClickListener()
    {
      @Override
      public void onClick(View sourcE)
      {
        //获取用户输入
        String word = ((EditText)findViewById(R.id.word))
            .getText().toString();
        String detail = ((EditText)findViewById(R.id.detail))
            .getText().toString();
        //插入生词记录
        insertData(dbHelper.getReadableDatabase(),word,detail);
        //@L_772_14@提示信息
        Toast.makeText(Dict.this,"添加生词成功!",Toast.LENGTH_SHORT)
            .show();
      }
    });
    search.setOnClickListener(new View.onClickListener()
    {
      @Override
      public void onClick(View sourcE)
      {
        // 获取用户输入
        String key = ((EditText) findViewById(R.id.key)).getText()
            .toString();
        // 执行查询
        cursor cursor = dbHelper.getReadableDatabase().rawQuery(
            "SELEct * from Dict where word like ? or detail like ?",new String[]{"%" + key + "%","%" + key + "%"});
        //创建一个Bundle对象
        Bundle data = new Bundle();
        data.putserializable("data",convercursorToList(cursor));
        //创建一个Intent
        Intent intent = new Intent(Dict.this,ResultActivity.class);
        intent.putExtras(data);
        //启动Activity
        startActivity(intent);
      }
    });
  }
  protected ArrayList<Map<String,String>>
  convercursorToList(cursor cursor)
  {
    ArrayList<Map<String,String>> result =
      new ArrayList<Map<String,String>>();
    //遍历cursor结果集
    while(cursor.moveToNext())
    {
      //将结果集中的数据存入ArrayList中
      Map<String,String> map = new
          HashMap<String,String>();
      //取出查询记录中第2列、第3列的值
      map.put("word",cursor.getString(1));
      map.put("detail",cursor.getString(2));
      result.add(map);
    }
    return result;
  }
  private void insertData(sqliteDatabase db,String word,String detail)
  {
    //执行插入语句
    db.execsql("insert into Dict values(null,?,?)",new String[]{word,detail});
  }
  @Override
  public void onDestroy()
  {
    super.onDestroy();
    //退出程序时@L_195_26@myDatabaseHelper里的sqliteDatabase
    if (dbHelper != null)
    {
      dbHelper.close();
    }
  }
}

@H_450_0@他的布局文件activity_main代码如下:

<!--?xml version="1.0" encoding="utf-8"?-->
<LinearLayout xmlns:android="http://@R_674_10906@mas.android.com/apk/res/android"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
  android:orientation="vertical">
  <EditText
    android:id="@+id/word"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:hint="@String/input"/>
  <EditText
    android:id="@+id/detail"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:hint="@String/input"
    android:lines="3"/>
  <Button
    android:id="@+id/insert"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@String/insert"/>
  <EditText
    android:id="@+id/key"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:hint="@String/record"/>
  <Button
    android:id="@+id/search"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@String/search"/>
  <ListView
    android:id="@+id/show"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"/>
</LinearLayout>

@H_450_0@另一个需要跳转的activity命名为:

@H_450_0@ResultActivity

@H_450_0@具体代码如下:

package example.com.myapplication;
import android.app.Activity;
import android.content.Intent;
import android.os.bundle;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import java.util.List;
import java.util.Map;
public class ResultActivity extends Activity
{
  @Override
  public void onCreate(Bundle savedInstanceStatE)
  {
    super.onCreate(savedInstanceStatE);
    setContentView(R.layout.popup);
    ListView listView = (ListView)findViewById(R.id.show);
    Intent intent = geTintent();
    //获取该intent所携带的数据
    Bundle data = intent.getExtras();
    //从Bundle数据包中取出数据
    @SuppressWarnings("unchecked")
    List<Map<String,String>> list =
      (List<Map<String,String>>)data.getserializable("data");
    //将List封装成SimpleAdapter
    SimpleAdapter adapter = new SimpleAdapter(
        ResultActivity.this,list,R.layout.ine,new String[]{"word","detail"},new int[]{R.id.my_title,R.id.my_content});
    //填充ListView
    listView.setAdapter(adapter);
  }
}

@H_450_0@他的布局文件命名为popup: 代码如下:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://@R_674_10906@mas.android.com/apk/res/android"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:id="@+id/fragment">
  <TextView
    android:id="@+id/my_title"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />
  <TextView
    android:id="@+id/my_content"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />
</LinearLayout>

@H_450_0@listView的子项目布局命名为ine:

@H_450_0@代码如下:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://@R_674_10906@mas.android.com/apk/res/android"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:id="@+id/fragment">
  <TextView
    android:id="@+id/my_title"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />
  <TextView
    android:id="@+id/my_content"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />
</LinearLayout>

@H_450_0@最后数据库帮助类命名为:

@H_450_0@myDatabaseHelper:

@H_450_0@代码如下:

package example.com.myapplication;
import android.content.Context;
import android.database.sqlite.sqliteDatabase;
import android.database.sqlite.sqliteOpenHelper;
public class MyDatabaseHelper extends sqliteOpenHelper
{
  final String create_tABLE_sql =
      "create table Dict(_id INTEGER PRIMary key autoincrement,detail)";
  public MyDatabaseHelper(Context context,String name,int version)
  {
    super(context,name,null,version);
  }
  @Override
  public void onCreate(sqliteDatabase db)
  {
    // 第一个使用数据库自动建表
    db.execsql(create_tABLE_sql);
  }
  @Override
  public void onUpgrade(sqliteDatabase db,int oldVersion,int newVersion)
  {
    System.out.println("--------onupdate Called--------"
        + oldVersion + "--->" + newVersion);
  }
}

@H_450_0@更多关于Android相关内容感兴趣的读者可查看本站专题:《Android操作SQLite数据库技巧总结》、《Android数据库操作技巧总结》、《Android编程之activity操作技巧总结》、《Android文件操作技巧汇总》、《Android开发入门与进阶教程》、《Android资源操作技巧汇总》、《Android视图View技巧总结》及《Android控件用法总结

@H_450_0@希望本文所述对大家Android程序设计有所帮助。

大佬总结

以上是大佬教程为你收集整理的Android+SQLite数据库实现的生词记事本功能实例全部内容,希望文章能够帮你解决Android+SQLite数据库实现的生词记事本功能实例所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: