-1

尊敬的用户,我是 android 和 SQLite 技术的新手。我在以下声明中遇到错误。请纠正我。

Cursor mCur=
    db.query(DATABASE_TABLE,
             new String[]{ROWID,MEDICINE,KEY_DESC,PRICE},
             MEDICINE+" = "+medName,null,null,null,null);

我的另一个问题是是否有任何与 EditText 相关的事件,以便我可以像text_change在 C# .NET 中使用它一样使用它的功能。[当我键入文本事件时应该被触发]。

为此,我尝试了以下事件:

  • setOnEditActionListener 和
  • setOnTouchListener
4

2 回答 2

1

1)在您的 SQL 查询中,我认为您medName是问题所在,因为它是一个字符串,请使用:

Cursor mCur=
    db.query(DATABASE_TABLE,
             new String[]{ROWID,MEDICINE,KEY_DESC,PRICE},
             MEDICINE+" = ?",new String[] {medName},null,null,null);

这种方法还可以保护您免受 SQL 注入攻击。

2) 要侦听 EditText 中的更改,请使用TextWatcher.

EditText edit = (EditText) findViewById(R.id.edit);
edit.addTextChangedListener(new TextWatcher() {
    public void beforeTextChanged(CharSequence s, int start, int count, int after) {
    }

    public void onTextChanged(CharSequence s, int start, int before, int count) {
    }

    public void afterTextChanged(Editable s) {
    }
});
于 2012-12-02T05:11:19.207 回答
0

对于您的 Sqlite 问题,请发布 Logcat 日志。

将 TextWatcher 添加到您的 EditText 以实现 3 个回调方法。

于 2012-12-02T05:13:51.787 回答