Android SQLite 搜索 : NullPointerException?

标签 android sqlite nullpointerexception android-cursor

我需要对我的 SQLite 数据库执行搜索操作。

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

我的 SearchActivity 中有这段代码用于 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!!我找不到错误所在。

有人可以帮忙吗?

最佳答案

对 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 行的第二部分:

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

关于Android SQLite 搜索 : NullPointerException?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6742831/

相关文章:

android - WearableListenerService 有多贵? (磨损Os)

java - Android - paint.setShadowLayer 忽略 shadowColor

java.lang.NullPointerException : Attempt to invoke response. body.getMessage()方法改造错误

android - Xamarin Xam.Plugin.Media 无法确定如何访问相机

android相机导致空指针异常

java - 为什么我的应用程序因 NullPointerException 崩溃

python - 如何使用数据库中的数据构造和填充 wx.Grid (python/wxpython)

sql - 在 CASE WHEN 中单独使用 COUNT

sqlite - 玩框架 H2 db evolutions 与 sqlite/mysql 兼容?

java - RecyclerView oncreateviewholder android 中的 NPE