插入sqlite数据库时的空指针异常 - Android

时间:2011-03-08 21:39:39

标签: android sqlite

所以,我有两个类,一个添加任务,一个添加类别。添加任务时,您可以将该任务与使用下拉列表填充的类别相关联,并且数据库通过使用触发器强制执行外键。我已经让应用程序正确地添加了任务但是我正在使用我的添加类别类捕获空指针异常,并且我无法确定它的位置 - 我已经查看了logcat但它没有特别有用。

课程如下:

public class AddCategory extends Activity {
    EditText txtCatName;
    DatabaseHelper dbHelper;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.addcategory);
        txtCatName = (EditText) findViewById(R.id.txtCatName);
    }

    public void btnAddCat_Click(View view) {
        boolean ok = true;
        try {
            String name = txtCatName.getText().toString();
            DatabaseMethods cat = new DatabaseMethods(name);

            dbHelper.AddCategory(cat);

        } catch (Exception ex) {
            ok = false;
            CatchError(ex.toString());
        } finally {
            if (ok) {
                // NotifyEmpAdded();
                Toasts.ShowTaskAddedAlert(this);
            }
        }
    }

    void CatchError(String Exception) {
        Dialog diag = new Dialog(this);
        diag.setTitle("Add new Category");
        TextView txt = new TextView(this);
        txt.setText(Exception);
        diag.setContentView(txt);
        diag.show();
    }

    void NotifyCatAdded() {
        Dialog diag = new Dialog(this);
        diag.setTitle(this.getString(R.string.add_category));
        TextView txt = new TextView(this);
        txt.setText(this.getString(R.string.category_added));
        diag.setContentView(txt);
        diag.show();
        try {
            diag.wait(1000);
        } catch (InterruptedException e) {
            CatchError(e.toString());
        }
        diag.notify();
        diag.dismiss();
    }

} 

如果您需要更多代码,请随便询问。任何帮助深表感谢。总是有助于在代码上看到更多的眼睛来发现错误:)。

1 个答案:

答案 0 :(得分:0)

我没有看到dbHelper被初始化的地方,所以我怀疑它会返回null。在dbHelper.AddCategory(cat);放置一个断点,看看dbHelper是否为空。