zoukankan      html  css  js  c++  java
  • 我的电子辞典

      1 package zzuli.acmen;
    2
    3 import java.io.File;
    4 import java.io.FileOutputStream;
    5 import java.io.InputStream;
    6
    7 import android.app.Activity;
    8 import android.content.Context;
    9 import android.database.Cursor;
    10 import android.database.sqlite.SQLiteDatabase;
    11 import android.os.Bundle;
    12 import android.os.Environment;
    13 import android.text.Editable;
    14 import android.text.TextWatcher;
    15 import android.view.LayoutInflater;
    16 import android.view.View;
    17 import android.view.ViewGroup;
    18 import android.view.View.OnClickListener;
    19 import android.widget.AutoCompleteTextView;
    20 import android.widget.Button;
    21 import android.widget.CursorAdapter;
    22 import android.widget.TextView;
    23
    24 public class Dictionary extends Activity {
    25
    26 private AutoCompleteTextView myAuto;
    27 private Button btn;
    28 private TextView text;
    29 private SQLiteDatabase database;
    30
    31 private final String DATABASE_FILENAME = "dictionary.db";
    32 private final String DATABASE_PATH = String.valueOf(Environment.getExternalStorageDirectory().getAbsolutePath())+"/dictionary";
    33
    34 @Override
    35 protected void onCreate(Bundle savedInstanceState) {
    36 // TODO Auto-generated method stub
    37 super.onCreate(savedInstanceState);
    38 setContentView(R.layout.main);
    39
    40 myAuto = (AutoCompleteTextView)this.findViewById(R.id.myauto);
    41 btn = (Button)this.findViewById(R.id.btn);
    42 text = (TextView)this.findViewById(R.id.text);
    43
    44 database = openDatabase();
    45
    46 myAuto.addTextChangedListener(new TextWatcher() {
    47
    48 @Override
    49 public void onTextChanged(CharSequence s, int start, int before, int count) {
    50 // TODO Auto-generated method stub
    51
    52 }
    53
    54 @Override
    55 public void beforeTextChanged(CharSequence s, int start, int count,
    56 int after) {
    57 // TODO Auto-generated method stub
    58
    59 }
    60
    61 @Override
    62 public void afterTextChanged(Editable s) {
    63 // TODO Auto-generated method stub
    64 String str[] = {myAuto.getText()+"%"};
    65 Cursor cursor = database.rawQuery("select english as _id from t_words where english like ?",str);
    66 if(cursor == null)
    67 System.out.println("I'm exmpty");
    68 String ss;
    69 System.out.println(str[0]);
    70 DictionaryAdapter myAdapter = new DictionaryAdapter(Dictionary.this,cursor,true);
    71 Dictionary.this.myAuto.setAdapter(myAdapter);
    72 }
    73 });
    74
    75
    76 btn.setOnClickListener(new OnClickListener() {
    77
    78 @Override
    79 public void onClick(View v) {
    80 System.out.println("开始出处");
    81 System.out.println("_________________________________");
    82 // TODO Auto-generated method stub
    83 SQLiteDatabase clickdb = Dictionary.this.database;
    84 String str = Dictionary.this.myAuto.getText().toString();
    85 System.out.println(str);
    86 Cursor localCursor = clickdb.rawQuery("select chinese from t_words where english=?", new String[]{str});
    87 System.out.println(localCursor.getCount());
    88 if(localCursor.getCount()>0){
    89 localCursor.moveToFirst();
    90 Dictionary.this.text.setText(localCursor.getString(localCursor.getColumnIndex("chinese")));
    91 // Dictionary.this.text.setText("asdasd");
    92 // System.out.println(localCursor.getString(localCursor.getColumnIndex("chinese")));
    93 }
    94 else
    95 Dictionary.this.text.setText("未找到相应的单词@——@");
    96 }
    97 });
    98
    99 }
    100
    101 /**
    102 * 把数据加到数据库当中!
    103 */
    104 private SQLiteDatabase openDatabase(){
    105
    106 Context con = null ;
    107
    108 System.out.println(this.DATABASE_PATH);
    109 String databaseFilename = this.DATABASE_PATH + "/" + this.DATABASE_FILENAME;
    110 File dir = new File(this.DATABASE_PATH);
    111
    112 if(!dir.exists())
    113 dir.mkdir();
    114
    115 if(!(new File(databaseFilename).exists())){
    116
    117 InputStream in = con.getResources().openRawResource(R.raw.dictionary);
    118 try {
    119 FileOutputStream fileOut = new FileOutputStream(databaseFilename);
    120 byte[] buffer = new byte[7168];
    121 int count = 0;
    122 // 开始复制dictionary.db文件
    123 while ((count = in.read(buffer)) > 0)
    124 {
    125 fileOut.write(buffer, 0, count);
    126 }
    127 fileOut.close();
    128 in.close();
    129
    130 } catch (Exception e) {
    131 // TODO Auto-generated catch block
    132 e.printStackTrace();
    133 }
    134
    135 }
    136
    137 SQLiteDatabase database = SQLiteDatabase.openOrCreateDatabase(databaseFilename, null);
    138 if(database == null)
    139 System.out.println("asd");
    140 else
    141 System.out.println("zzzzzzzzzzzzzzz");
    142 return database;
    143
    144 }
    145
    146 class DictionaryAdapter extends CursorAdapter{
    147
    148 private LayoutInflater layoutInflater;
    149 // private Cursor cc;
    150
    151 public DictionaryAdapter(Context context, Cursor c, boolean autoRequery) {
    152 super(context, c, autoRequery);
    153 this.layoutInflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    154 System.out.println("asdasdasd");
    155 System.out.println(c.getColumnIndex("_id"));
    156 }
    157
    158 @Override
    159 public void bindView(View view, Context context, Cursor cursor) {
    160 // TODO Auto-generated method stub
    161 setView(view,cursor);
    162 }
    163
    164 private void setView(View view, Cursor cursor) {
    165 // TODO Auto-generated method stub
    166 TextView textView = (TextView)view;
    167 textView.setText(cursor.getString(cursor.getColumnIndex("_id")));
    168 System.out.println(cursor.getColumnIndex("_id"));
    169 }
    170
    171 @Override
    172 public View newView(Context context, Cursor cursor, ViewGroup parent) {
    173 View view = layoutInflater.inflate(R.layout.word, null);
    174 setView(view, cursor);
    175 return view;
    176 }
    177
    178 @Override
    179 public CharSequence convertToString(Cursor cursor) {
    180 // TODO Auto-generated method stub
    181 return cursor==null?"":cursor.getString(cursor.getColumnIndex("_id"));
    182 }
    183
    184
    185 }
    186
    187 }
  • 相关阅读:
    php上传进度条
    array_combine — 创建一个数组,用一个数组的值作为其键名,另一个数组的值作为其值
    password_hash 与 password_verify
    这是一个微信带参数的二维码,自定义菜单,与图文回复
    go to 语句用起来还是挺方便的
    初次使用海豚php的一个例子
    图片下载
    一对一的关联映射
    延迟加载
    proxy和proxy-no的策略取值区别
  • 原文地址:https://www.cnblogs.com/Acmen/p/2276444.html
Copyright © 2011-2022 走看看