【问题标题】:Android SQLit Search: NullPointerException?Android SQLit 搜索:NullPointerException?
【发布时间】:2011-10-08 05:47:26
【问题描述】:

我需要对我的 SQLite DB 执行搜索操作。

在我的活动中,我有 EditText 用于输入关键字和搜索 Button。一旦用户单击按钮,EditText 文本将存储在keyword 中并发送到 DBHelper 类中的search(String keyword) 方法。

我的SearchActivityfor onCreate()onClick() 中有这段代码:

//SearchActivity class extends ListActivity and implements OnClickListener 
Button search;
DataBaseHelper myDbHelper;
SimpleCursorAdapter ca;
ListView lv;
EditText txt;

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.search_layout);

    txt = (EditText) findViewById(R.id.search_term);
    search = (Button) findViewById(R.id.search_button);

    search.setOnClickListener(this);
}

public void onClick(View v) {
    try {
        myDbHelper.openDataBase();
    } catch (SQLException sqle) {}

    try {
    String keyword= txt.getText().toString();
    Cursor cursor = myDbHelper.search(keyword); //A method in my DB
    cursor.moveToFirst();
    String[] columns = {cursor.getColumnName(1)}; 
    int[] columnsLayouts = {R.id.item_title};
    ca = new SimpleCursorAdapter(this.getBaseContext(), R.layout.items_layout, cursor,columns , columnsLayouts);
    lv = getListView();
    lv.setAdapter(ca);

    } catch(Exception e){}
}

但是,我在 LogCat 中得到了NullPointerException!我找不到错误在哪里。

有人可以帮忙吗?

【问题讨论】:

  • 提供 logcat 信息以及你在哪一行得到了错误

标签: android sqlite nullpointerexception android-cursor


【解决方案1】:

对 NullPointerException 的描述可能会提供更多信息。但是这里很有可能出现 NullPointerException:

1: Cursor cursor = myDbHelper.search(keyword); //A method in my DB
2: cursor.moveToFirst();
3: String[] columns = {cursor.getColumnName(1)}; 

或这里:

1: try {
2:    myDbHelper.openDataBase();
3: } catch (SQLException sqle) {}

在第 1 行的第一部分:或 2:或在第 2 行的第二部分:

您应该始终检查依赖数据存在的对象是否为not null。所以你应该检查cursor 是否是null。另一件事可能是您从未初始化 myDbHelper

【讨论】:

  • 这是另一回事。我不知道我是怎么忘记初始化 DBHelper 变量的!!而且我不知道你是怎么抓到的!!谢谢人:-)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多