android中的autocomplete例子小結

來源:互聯網
上載者:User
  小結下android中的autocomplete和sqlite的知識點,順便複習下。

1 SQLITE協助類

   public class SQLiteCountryAssistant extends SQLiteOpenHelper {

private static final String DB_NAME = "usingsqlite.db";

private static final int DB_VERSION_NUMBER = 1;

private static final String DB_TABLE_NAME = "countries";

private static final String DB_COLUMN_1_NAME = "country_name";

private static final String DB_CREATE_SCRIPT = "create table "

+ DB_TABLE_NAME

+ " (_id integer primary key autoincrement, country_name text not null);)";

private SQLiteDatabase sqliteDBInstance = null;

public SQLiteCountryAssistant(Context context) {

super(context, DB_NAME, null, DB_VERSION_NUMBER);

}

@Override

public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

// TODO: Implement onUpgrade

}

@Override

public void onCreate(SQLiteDatabase sqliteDBInstance) {

Log.i("onCreate", "Creating the database...");

sqliteDBInstance.execSQL(DB_CREATE_SCRIPT);

}

public void openDB() throws SQLException {

Log.i("openDB", "Checking sqliteDBInstance...");

if (this.sqliteDBInstance == null) {

Log.i("openDB", "Creating sqliteDBInstance...");

this.sqliteDBInstance = this.getWritableDatabase();

}

}

public void closeDB() {

if (this.sqliteDBInstance != null) {

if (this.sqliteDBInstance.isOpen())

this.sqliteDBInstance.close();

}

}

public long insertCountry(String countryName) {

ContentValues contentValues = new ContentValues();

contentValues.put(DB_COLUMN_1_NAME, countryName);

Log

.i(this.toString() + " - insertCountry", "Inserting: "

+ countryName);

return this.sqliteDBInstance.insert(DB_TABLE_NAME, null, contentValues);

}

public boolean removeCountry(String countryName) {

int result = this.sqliteDBInstance.delete(DB_TABLE_NAME,

"country_name='" + countryName + "'", null);

if (result > 0)

return true;

else

return false;

}

public long updateCountry(String oldCountryName, String newCountryName) {

ContentValues contentValues = new ContentValues();

contentValues.put(DB_COLUMN_1_NAME, newCountryName);

return this.sqliteDBInstance.update(DB_TABLE_NAME, contentValues,

"country_name='" + oldCountryName + "'", null);

}

public String[] getAllCountries() {

Cursor cursor = this.sqliteDBInstance

.query(DB_TABLE_NAME, new String[] { DB_COLUMN_1_NAME }, null,

null, null, null, null);

if (cursor.getCount() > 0) {

String[] str = new String[cursor.getCount()];

int i = 0;

while (cursor.moveToNext()) {

str[i] = cursor.getString(cursor

.getColumnIndex(DB_COLUMN_1_NAME));

i++;

}

return str;

} else {

return new String[] {};

}

}

2 使用的autocomplete類

   public class UsingSQLite extends Activity

{

private SQLiteCountryAssistant sqlliteCountryAssistant;

@Override  

public void onCreate(Bundle savedInstanceState)

{

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

final AutoCompleteTextView textView = (AutoCompleteTextView) findViewById(R.id.autocompleteCountry); 

sqlliteCountryAssistant = new SQLiteCountryAssistant(UsingSQLite.this);    

sqlliteCountryAssistant.openDB();    

// Insert a few countries that begin with "C"      

sqlliteCountryAssistant.insertCountry("Cambodia"); 

sqlliteCountryAssistant.insertCountry("Cameroon");  

sqlliteCountryAssistant.insertCountry("Canada");    

sqlliteCountryAssistant.insertCountry("Cape Verde");

sqlliteCountryAssistant.insertCountry("Cayman Islands");

sqlliteCountryAssistant.insertCountry("Chad");   

sqlliteCountryAssistant.insertCountry("Chile");   

sqlliteCountryAssistant.insertCountry("China");  

//sqlliteCountryAssistant.removeCountry("Chad");      

//sqlliteCountryAssistant.updateCountry("Canada", "Costa Rica"); 

String[] countries = sqlliteCountryAssistant.getAllCountries();  

// Print out the values to the log   

for(int i = 0; i < countries.length; i++) 

{           

Log.i(this.toString(), countries[i]);    

}        

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.list_item, countries);    

textView.setAdapter(adapter); 

}   

public void onDestroy() 

{     

super.onDestroy();    

sqlliteCountryAssistant.close();  

}

}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.