8

Eclipseを使用してJavaでAndroidアプリを作成しました。これにより、Sqliteデータベースが作成され、ユーザーはそれにデータを追加できます。ユーザーは既存のデータを検索することもできます。Androidカーソルオブジェクトを使用しました。クエリの完了後にテキストボックスをクリアするにはどうすればよいですか?たとえば、「value」と入力して、その値に関連付けられているすべてのレコードを取得します。今度は別の検索を実行したいと思います。テキストボックスをクリックすると、次の検索のためにテキストボックスをクリアしたいと思います。

これは、データを挿入および取得するための私のコードの一部です。

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 に答える