2012-09-26 66 views
0

我已經在java中使用eclipse創建了一個android應用程序,它創建了一個Sqlite數據庫並允許用戶向其添加數據。用戶也可以搜索現有的數據。 我使用了android遊標對象。 如何在查詢完成後清除文本框?例如,我鍵入「值」來檢索與該值關聯的所有記錄。現在我想執行另一個搜索。當我點擊文本框時,我想要爲下一次搜索清除文本框。Android - 如何清除textView?

這是我的插入和檢索數據的代碼部分:

db.execSQL("CREATE TABLE IF NOT EXISTS " + MY_DATABASE_TABLE + " (id INTEGER PRIMARY KEY AUTOINCREMENT, " + " name TEXT," + " number TEXT);"); 

Cursor cur = db.rawQuery("INSERT INTO " + MY_DATABASE_TABLE + " (name, number)" + " VALUES (\"" + newname + "\", \"" + newnumber + "\");", null); 
cur.moveToFirst(); 
while (cur.isAfterLast() == false) 
{ 
    result.append("\n" + "Id: " + cur.getString(0) + " | " + "Name: " + cur.getString(1) + " | " + "Phone Number: " + cur.getString(2) + "\n"); 

    cur.moveToNext(); 
} 
cur.close(); 

Cursor c = db.rawQuery("SELECT * FROM " + MY_DATABASE_TABLE, new String [] {} ); 

c.moveToFirst(); 

while (c.isAfterLast() == false) { 
    result.append("\n" + "Id: " + c.getString(0) + " | " + "Name: " + c.getString(1) + " | " + "Phone Number: " + c.getString(2) + "\n"); 

    c.moveToNext(); 
} 
c.close(); 

感謝。

+0

由於您暴露於[SQL Injection](http://xkcd.com/327/)漏洞攻擊,因此請注意將用戶輸入置入此類原始查詢中。 – OceanLife

回答

11

首先,您可能不想清除數據庫以清除textView。所以相關的代碼會在你的活動中。

所以,如果你正在使用一個TextView,你會做這樣的事情在代碼

//全局變量

TextView yourTexView; 

//在你的活動上創建

yourTexView = (TextView) findViewById(R.id.yourTexView); 
    yourTexView .setOnClickListener(yourClickListener) 

//某處活動班

/** 
* Tour Click Handler - This will clear the textview whenever someone clicks it. 
*/ 
private OnClickListener yourClickListener= new OnClickListener() { 
    public void onClick(View v) { 
     yourTexView.setText(""); 
    } 
}; 

//在XML文件 - 變化,因爲你需要

<TextView 
     android:id="@+id/yourTexView" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="" /> 

希望這有助於, 乾杯

+0

yourTexView.setText(「」)起作用。謝謝 ! – user1170168

+0

太棒了!請點擊接受答案複選標記以讓其他人知道它已解決。我很高興它的工作。 =) – Dave

1

無論setText("")setText(null) - 無論是那些將工作之一。出於可讀性原因,我使用setText(null)