很好的帖子:

eoeWiki客户端(android版)1.0.0版正式发布~
http://www.eoeandroid.com/thread-194188-1-1.html

Android定时自动启动应用程序应用教程
http://www.eoeandroid.com/thread-194271-1-1.html

基于Android 随手记
http://www.eoeandroid.com/thread-194031-1-1.html

因为问这个问题的人很多,所以刚刚找了下代码,结果还手动的把他提取出来。好了废话不多说了。直接上代码。

package ki.test.edit_list; import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream; import android.content.Context;import android.database.sqlite.SQLiteDatabase;import android.os.Environment; public class DBManager {        private final int BUFFER_SIZE = 40000;        public static final String DB_NAME = "city.db"; // 保存的数据库文件名        public static final String PACKAGE_NAME = "ki.test.edit_list";        public static final String DB_PATH = "/data"                        + Environment.getDataDirectory().getAbsolutePath() + "/"                        + PACKAGE_NAME; // 在手机里存放数据库的位置         private SQLiteDatabase database;        private Context context;         public DBManager(Context context) {                this.context = context;        }         SQLiteDatabase db = null;         public SQLiteDatabase getDatabase(){                try {                        openDatabase();                } catch (IOException e) {                        // TODO Auto-generated catch block                        e.printStackTrace();                }                return db;        }                 private void openDatabase() throws IOException {                String dbfile = DB_PATH + "/" + DB_NAME;                 if (!(new File(dbfile).exists())) {// 判断数据库文件是否存在,若不存在则执行导入,否则直接打开数据库                        InputStream is = this.context.getResources().openRawResource(                                        R.raw.city); // 欲导入的数据库                        FileOutputStream fos = new FileOutputStream(dbfile);                        byte[] buffer = new byte[BUFFER_SIZE];                        int count = 0;                        while ((count = is.read(buffer)) > 0) {                                fos.write(buffer, 0, count);                        }                        fos.close();                        is.close();                }                 db = SQLiteDatabase.openDatabase(dbfile, null,                                SQLiteDatabase.OPEN_READWRITE);        }         public void closeDatabase() {                this.database.close();        }                  }
package ki.test.edit_list; import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map; import android.app.Activity;import android.content.SharedPreferences;import android.database.Cursor;import android.database.sqlite.SQLiteDatabase;import android.os.Bundle;import android.text.Editable;import android.text.TextWatcher;import android.util.Log;import android.view.View;import android.widget.*;import android.widget.AdapterView.OnItemClickListener;import android.widget.AdapterView.OnItemSelectedListener; public class SearchCity extends Activity implements OnItemClickListener, TextWatcher {         public static List<Map<String, String>> City_Lists = new ArrayList<Map<String, String>>();         private List<Map<String, String>> defaultLists = new ArrayList<Map<String, String>>();                 private List<Map<String, String>> lists = new ArrayList<Map<String, String>>();          private final String NAME = "name";        private final String PARENT_NAME = "parent_name";                  // sql 语句        private final String sql_Head = "select b.name , a.name from city a inner join (select _id ,name from city) b on a.parent_id = b._id where dtype = 'area' and a.name like '";        private String str_Sql = "";        private final String sql_Foot = "%'";         private EditText edit_search_city;        private SQLiteDatabase db;        private Cursor result;        private SearchCity city = this;        private ListView listView;         @Override        protected void onCreate(Bundle savedInstanceState) {                // TODO Auto-generated method stub                super.onCreate(savedInstanceState);                setContentView(R.layout.search);                 initControl();                initDefaultLists();                listView.setOnItemClickListener(this);                 edit_search_city.addTextChangedListener(this);         }         void initControl() {                edit_search_city = (EditText) findViewById(R.id.edit_search);                listView = (ListView) findViewById(R.id.listview);        }         private void initDefaultLists() {                Map<String, String> map = new HashMap<String, String>();                map.put(NAME, getString(R.string.nocity));                defaultLists.add(map);        }         public boolean getLists(String edit_content) {                str_Sql = sql_Head + edit_content + sql_Foot;                db = new DBManager(city).getDatabase();                result = db.rawQuery(str_Sql, null);                if (result.moveToFirst()) {                        while (!result.isAfterLast()) {                                Map<String, String> map = new HashMap<String, String>();                                String name = result.getString(1);                                String parent_name = result.getString(0);                                if (name.equals(parent_name))                                        parent_name = "";                                map.put(NAME, name);                                map.put(PARENT_NAME, parent_name);                                lists.add(map);                                result.moveToNext();                        }                        City_Lists = lists;                        result.close();                        db.close();                        return true;                }                db.close();                return false;        }         @Override        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {                String put_Content = City_Lists.get(position).get(NAME);                Toast.makeText(getApplicationContext(), put_Content, 8000).show();        }         @Override        public void beforeTextChanged(CharSequence s, int start, int count, int after) {         }         @Override        public void onTextChanged(CharSequence s, int start, int before, int count) {                lists.clear();                String edit_content = edit_search_city.getText().toString();                if (edit_content.equals("")) {                        return;                }                List<Map<String, String>> dataLists = null;                dataLists =  getLists(edit_content) ? lists : defaultLists;                ListAdapter adapter = new SimpleAdapter(city, dataLists, R.layout.listview, new String[] { NAME, PARENT_NAME }, new int[] { R.id.txt_list_1, R.id.txt_list_2 });                listView.setAdapter(adapter);        }         @Override        public void afterTextChanged(Editable s) {         }}
package ki.test.edit_list; import android.app.Activity;import android.content.Intent;import android.os.Bundle; public class TestDemoActivity extends Activity {        /** Called when the activity is first created. */        @Override        public void onCreate(Bundle savedInstanceState) {                super.onCreate(savedInstanceState);                setContentView(R.layout.main);                 startActivity(new Intent(getApplicationContext(), SearchCity.class));        }}
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="fill_parent"    android:layout_height="55px"    android:orientation="horizontal" >     <TextView        android:id="@+id/txt_list_1"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_marginLeft="8px"        android:layout_marginRight="10px"        android:textColor="#FFFFFF"        android:textSize="30px" />     <TextView        android:layout_width="20px"        android:layout_height="wrap_content"        android:layout_marginRight="5px"        android:text="--"        android:textSize="20px" />     <TextView        android:id="@+id/txt_list_2"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:textSize="25px" /> </LinearLayout>
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="400px"    android:layout_height="500px"    android:orientation="vertical" >     <LinearLayout        android:layout_width="fill_parent"        android:layout_height="2px"        android:background="#CCCCCC"        android:layout_marginBottom="5px" />     <EditText        android:id="@+id/edit_search"        android:layout_width="350px"        android:layout_height="wrap_content"        android:hint="Enter the city"/>     <LinearLayout        android:layout_width="fill_parent"        android:layout_height="2px"        android:background="#CCCCCC"        android:layout_marginBottom="5px" />        <LinearLayout       android:id="@+id/linear_list"       android:layout_width="match_parent"       android:layout_height="match_parent">       <ListView           android:id="@+id/listview"           android:layout_width="wrap_content"           android:layout_height="wrap_content"></ListView>           </LinearLayout> </LinearLayout>
<?xml version="1.0" encoding="utf-8"?><resources>     <string name="hello">Hello World, TestDemoActivity!</string>    <string name="app_name">设置城市</string>    <string name="nocity">没有找到你想查询的城市</string> </resources>

其中由于是刚刚急着赶出来的 所以可能代码有些乱,但是主要看思路,另外我把源码 也上传了下。有不足地方请见晾。

源码下载:TestDemo.rar

更多相关文章

  1. Android(安卓)快速选择联系人
  2. Android调用js的坑
  3. 第15天android:使用sqlite
  4. Android(安卓)解屏代码
  5. Android(安卓)4.0 HttpUrlConnection的getInputStream()方法总是
  6. android backgroud alpha
  7. Android一键锁屏开发全过程【源码】【附图】
  8. Android(安卓)layout 设置圆角 内部 imageview 无效果
  9. Google C2Dm相关文章

随机推荐

  1. Android(安卓)Activity生命周期和堆栈管
  2. Android Studio 3.0-3.1 汉化包
  3. Android中完全退出APP的方法
  4. 分享一个整理了很多Android开发工具类的
  5. java中Arraylist复制方法
  6. 单元测试
  7. android 实时获取系统log
  8. 清除Mac中Android studio的配置文件
  9. android简单网页浏览器的开发
  10. 关于.android 文件夹的移动问题