8

我使用 eclipse 在 java 中创建了一个 android 应用程序,它创建了一个 Sqlite 数据库并让用户向其中添加数据。用户还可以搜索现有数据。我使用了 android 光标对象。查询完成后如何清除文本框?例如,我键入“值”以检索与该值关联的所有记录。现在我想执行另一个搜索。当我单击文本框时,我希望为下一次搜索清除文本框。

这是我插入和检索数据的代码的一部分:

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();

谢谢。

4

2 回答 2

18

首先,您可能不想清除数据库以仅清除 textView。因此,相关代码将在您的活动中。

因此,如果您使用的是 textView,您将在代码中执行类似的操作

// 全局变量

    TextView yourTexView;

// 在你的 Create 活动中

    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="" />

希望这会有所帮助,干杯

于 2012-09-26T21:29:25.207 回答
9

要么——setText("")要么setText(null)——其中任何一个都可以。我setText(null)出于可读性原因使用。

于 2016-09-14T22:35:59.427 回答