使用ContentValues添加值,给出Null指针Exception

时间:2015-10-12 16:55:19

标签: android nullpointerexception onclicklistener

`public class addbudget extends ActionBarActivity实现了View.OnClickListener {

DBhelper helper;
SQLiteDatabase db;
EditText txtBudget;
TextView txr;
ListView rldlist;
Button btn66;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.addbudget);

    btn66=(Button)findViewById(R.id.btn_addBudget);
    btn66.setOnClickListener(this);

    txr=(TextView)findViewById(R.id.addbud);

    txtBudget=(EditText)findViewById(R.id.etBudget);

    rldlist = (ListView) findViewById(R.id.rldlist);

    Bundle data_from_list= getIntent().getExtras();
    String value_in_tv= data_from_list.getString("passed data key");
    txr.setText(value_in_tv);

}

 private void clearfield(){
    txtBudget.setText("");

}


public void onClick(View v) {
    if (btn66 == v) {
        ContentValues value = new ContentValues();
        value.put(DBhelper.Amount, txtBudget.getText().toString());
        value.put(DBhelper.Description,txr.getText().toString());

        if (txtBudget.length() == 0) {
            txtBudget.requestFocus();
            txtBudget.setError("Field Cannot Be Empty");
        } else {
            db = helper.getWritableDatabase();
            db.insert(DBhelper.TABLE2, null, value);
            db.close();
            clearfield();
            Toast.makeText(this, "Budget add Successfully", Toast.LENGTH_LONG).show();


        }
    }
}
}

`

这是我的Activity,我想在数据库中插入值,Inside Onclicklistener,我有我的代码将数据添加到数据库,

我需要添加" Textview txr"值和" EditText txtBudget"数据库的价值,我正在检索" Textview txr"的价值。来自使用Bundle的另一项活动。

现在的问题是,我点击了Null指针异常,当我点击Add Button时。帮我解决这个问题。

10-12 22:23:17.142 11785-11785/com.example.username.god E/AndroidRuntime﹕ FATAL EXCEPTION: main java.lang.NullPointerException at com.example.username.god.addbudget.onClick(addbudget.java:92) at android.view.View.performClick(View.java:4439) at android.view.View$PerformClick.run(View.java:18398) at android.os.Handler.handleCallback(Handler.java:725) at android.os.Handler.dispatchMessage(Handler.java:92) at android.os.Looper.loop(Looper.java:176) at android.app.ActivityThread.main(ActivityThread.java:5299) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:511) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1102) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:869)

1 个答案:

答案 0 :(得分:0)

下面:

db = helper.getWritableDatabase();

因为helper对象为null而导致问题的行。

在使用helper对象调用方法之前需要初始化它:

 helper=new DBhelper(addbudget.this);
 db = helper.getWritableDatabase();