android问题:11-24 01:57:06.230: W/dalvikvm(1325): threadid=1: thread exiting with uncaught exception (

来源:互联网 发布:plsql 两个数据库导表 编辑:程序博客网 时间:2024/06/05 04:28

11-24 01:57:06.230: W/dalvikvm(1325): threadid=1: thread exiting with uncaught exception (group=0xb4a5bb90)
11-24 01:57:06.290: E/AndroidRuntime(1325): FATAL EXCEPTION: main
11-24 01:57:06.290: E/AndroidRuntime(1325): Process: ui.cqupt, PID: 1325
11-24 01:57:06.290: E/AndroidRuntime(1325): java.lang.NullPointerException
11-24 01:57:06.290: E/AndroidRuntime(1325):  at ui.cqupt.InsertActivity$ButtonListener.onClick(InsertActivity.java:33)
11-24 01:57:06.290: E/AndroidRuntime(1325):  at android.view.View.performClick(View.java:4424)
11-24 01:57:06.290: E/AndroidRuntime(1325):  at android.view.View$PerformClick.run(View.java:18383)
11-24 01:57:06.290: E/AndroidRuntime(1325):  at android.os.Handler.handleCallback(Handler.java:733)
11-24 01:57:06.290: E/AndroidRuntime(1325):  at android.os.Handler.dispatchMessage(Handler.java:95)
11-24 01:57:06.290: E/AndroidRuntime(1325):  at android.os.Looper.loop(Looper.java:137)
11-24 01:57:06.290: E/AndroidRuntime(1325):  at android.app.ActivityThread.main(ActivityThread.java:4998)
11-24 01:57:06.290: E/AndroidRuntime(1325):  at java.lang.reflect.Method.invokeNative(Native Method)
11-24 01:57:06.290: E/AndroidRuntime(1325):  at java.lang.reflect.Method.invoke(Method.java:515)
11-24 01:57:06.290: E/AndroidRuntime(1325):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:777)
11-24 01:57:06.290: E/AndroidRuntime(1325):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:593)
11-24 01:57:06.290: E/AndroidRuntime(1325):  at dalvik.system.NativeStart.main(Native Method)


使用Android做图书管理,新插入图书信息时直接报错退出,后来一直看错误,发现错误关键行11-24 01:57:06.290: E/AndroidRuntime(1325):  at ui.cqupt.InsertActivity$ButtonListener.onClick(InsertActivity.java:33),定位到代码中是 String bookid = id.getText().toString();找了好久才发现是在使用findviewbyid出错,R的参数有错name = (EditText) findViewById(R.id.sname);
  id = (EditText) findViewById(R.id.sid);
  price = (EditText) findViewById(R.id.sprice);

在XML文件中是 name ,id ,price,这里用了sname,sid,sprice,感觉蠢到家了。。。。

源代码:

protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_insert);
  name = (EditText) findViewById(R.id.sname);
  id = (EditText) findViewById(R.id.sid);
  price = (EditText) findViewById(R.id.sprice);
  Button insert = (Button) findViewById(R.id.i_insert);
  insert.setOnClickListener(new ButtonListener());
 }
class ButtonListener implements OnClickListener{
  
  @Override
  public void onClick(View v) {
   // TODO Auto-generated method stub
   String bookid = id.getText().toString();
   String bookname = name.getText().toString();
   String bookprice = price.getText().toString();
   Contol control = new Contol();
   if(bookname.equals("") || bookid.equals("") || bookprice.equals("")){
    //new Builder(InsertActivity.this).setMessage("图书信息不能为空").show();
    Builder builder = new Builder(InsertActivity.this);
    builder.setMessage("图书信息不能为空").show();
   }
   else{
    if(control.addBook(bookid, bookname, bookprice)){
     id.setText("");
     name.setText("");
     price.setText("");
     buildDialog();
    }
    else{
     Builder builder = new Builder(InsertActivity.this);
     //new Builder(InsertActivity.this).setMessage("已有此图书").show();
     builder.setMessage("已有此图书").show();
    }
   }
  }

1 0