zoukankan      html  css  js  c++  java
  • 数据库读取方法

    package com.example.e18;

    import java.io.File;
    import java.io.FileOutputStream;
    import java.io.InputStream;

    import android.os.Bundle;
    import android.app.Activity;
    import android.content.Context;
    import android.database.Cursor;
    import android.database.sqlite.SQLiteDatabase;
    import android.support.v4.widget.CursorAdapter;
    import android.text.Editable;
    import android.text.TextWatcher;
    import android.view.LayoutInflater;
    import android.view.Menu;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.view.ViewGroup;
    import android.widget.AutoCompleteTextView;
    import android.widget.Button;
    import android.widget.TextView;

    public class MainActivity extends Activity implements OnClickListener,TextWatcher{
    private TextView tv;
    private final String DATABASE_PATH=android.os.Environment.
    getExternalStorageDirectory().getAbsolutePath()+"/dictionary";
    private AutoCompleteTextView word;
    private final String DATABASE_FILENAME="dictionary.db";
    private SQLiteDatabase database;
    private Button searchWord;
    private TextView showResult;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    // tv=(TextView)findViewById(R.id.textView1);
    // tv.setText(DATABASE_PATH);
    database=openDatabase();
    searchWord=(Button)findViewById(R.id.searchWord);
    word=(AutoCompleteTextView)findViewById(R.id.word);
    searchWord.setOnClickListener(this);
    word.addTextChangedListener(this);
    showResult=(TextView)findViewById(R.id.result);
    }

    public class DictionaryAdapter extends CursorAdapter{
    private LayoutInflater layoutInflater;

    public CharSequence convertToString(Cursor cursor){
    return cursor==null ? "" : cursor.getString(cursor.getColumnIndex("_id"));
    }

    private void setView(View view,Cursor cursor){
    TextView tvWordItem=(TextView)view;
    tvWordItem.setText(cursor.getString(cursor.getColumnIndex("_id")));
    }

    public DictionaryAdapter(Context context, Cursor c,boolean autoRequery) {
    super(context, c,autoRequery);
    layoutInflater=(LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    }

    @Override
    public void bindView(View arg0, Context arg1, Cursor arg2) {
    setView(arg0,arg2);

    }

    @Override
    public View newView(Context arg0, Cursor arg1, ViewGroup arg2) {
    View view=layoutInflater.inflate(R.layout.word_list.item, null);
    setView(view,arg1);
    return view;
    }

    }


    private SQLiteDatabase openDatabase(){
    String databaseFilename=DATABASE_PATH+"/"+DATABASE_FILENAME;
    File dir=new File(DATABASE_PATH);
    if(!dir.exists()){
    dir.mkdir();
    }
    if(!(new File(databaseFilename).exists())){
    InputStream is=getResources().openRawResource(R.raw.dictionary);
    FileOutputStream fos=new FileOutputStream(databaseFilename);
    byte[] buffer=new byte[8192];
    int count=0;
    while((count=is.read(buffer))>0){
    fos.write(buffer,0,count);
    }
    fos.close();
    is.close();
    }
    SQLiteDatabase database=SQLiteDatabase.openOrCreateDatabase(databaseFilename, null);

    return database;

    }

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

    @Override
    public void beforeTextChanged(CharSequence s, int start, int count,
    int after) {
    // TODO Auto-generated method stub

    }

    @Override
    public void onTextChanged(CharSequence s, int start, int before, int count) {
    // TODO Auto-generated method stub

    }

    @Override
    public void afterTextChanged(Editable s) {
    String sql="select english as _id from t_words where english like ?";

    Cursor cursor=database.rawQuery(sql, new String[]{s.toString()+"%"});
    DictionaryAdapter dictionaryAdapter=new DictionaryAdapter(this,cursor,true);
    word.setAdapter(dictionaryAdapter);

    }

    @Override
    public void onClick(View v) {
    String sql="select chinese from t_words where englist=?";
    Cursor cursor=database.rawQuery(sql, new String[]{word.getText().toString()});
    String result="未找到该单词!";
    if(cursor.getCount()>0){
    cursor.moveToFirst();
    result=cursor.getString(cursor.getColumnIndex("chinese")).replace("&", "&");
    }
    showResult.setText(word.getText()+" "+result.toString());
    }

    }

  • 相关阅读:
    数据库设计规则
    了解何时使用 Override 和 New 关键字(C# 编程指南)
    Why we use stored procedure than Sql statement?
    HTML条件注释和javascript条件注释
    <%# %> 和 <% %> 有什么区别?
    short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错?
    如何实现 Visual Studio 2005 中远程调试
    认识延迟时间为0的setTimeout(转)
    Web应用程序中(VS2005+SP1)添加App_Code
    AWStats 一个不错的Web/Mail/FTP日志分析工具
  • 原文地址:https://www.cnblogs.com/liumin-txgt/p/13261888.html
Copyright © 2011-2022 走看看