Android空指针异常和数据库更新

Android空指针异常和数据库更新,android,android-layout,Android,Android Layout,每当我尝试运行此代码时,我总是遇到这个错误java.null.pointer异常。请帮助我如何解决此问题并更新我的数据库值。 这是我的密码 主要活动课 package dom.example.database_exp; import android.os.Bundle; import android.app.Activity; import android.content.ContentValues; import android.database.Cursor; import android

每当我尝试运行此代码时,我总是遇到这个错误java.null.pointer异常。请帮助我如何解决此问题并更新我的数据库值。 这是我的密码 主要活动课

package dom.example.database_exp;

import android.os.Bundle;
import android.app.Activity;
import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.view.Menu;
import android.widget.EditText;

public class MainActivity extends Activity {


@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

  MainActivity obj = new MainActivity();

    SQLiteDatabase db =openOrCreateDatabase("Test", MODE_PRIVATE, null);
    obj.Update(1, "Raza", "17", "Nohting"); 
  Cursor c = db.rawQuery("SELECT FirstName FROM test WHERE ID = 1 ",null);
  c.moveToFirst();
  EditText dis=(EditText)findViewById(R.id.editText1);
  String  result =  c.getString(c.getColumnIndex("FirstName")); 

   dis.setText("You have found "+result);

   db.close();

    /**    EditText dis=(EditText)findViewById(R.id.editText1);
       //Creating and opening the  database
     SQLiteDatabase db=openOrCreateDatabase("RamDB", MODE_PRIVATE,null);
     //Creating table with 3 columns
     db.execSQL("CREATE TABLE IF NOT EXISTS Test(ID INTEGER PK NOT NULL FirstName      VARCHAR,LastName VARCHAR,Age INT(3));");
                 **/

  }



 public int Update (int sid, String name, String age, String course)
  {
    String FirstName = "FirstName";
    String LastName = "LastName";
    String test = "test";
    String ID = "ID";
    // String _id = "1" ;
    SQLiteDatabase db =openOrCreateDatabase("Test", MODE_PRIVATE, null);
    ContentValues pau = new ContentValues();
    pau.put(FirstName, name);



   return db.update(test, pau,ID + "=" + sid, null);

   }

  @Override
  public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.activity_main, menu);
     return true;
   }
   }
我的xml文件


我们需要堆栈跟踪来检查错误的位置。尽管构造函数调用
MainActivity obj=newmainActivity()看起来很奇怪。据我所知,您不需要调用活动的构造函数

您也可以参考您的活动电话

尝试删除
MainActivity obj=newmainActivity()
这个更新(1,“Raza”,“17”,“Nohting”)也不需要运行openOrCreateDatabase两次,您可以在OnCreate和方法上运行它

在任何情况下,请检查跟踪
adb logcat
,以便更好地了解代码失败的位置

   <EditText
    android:id="@+id/editText1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:layout_marginLeft="51dp"
    android:layout_marginTop="89dp"
    android:ems="10"
    android:inputType="text" >

    <requestFocus />
     </EditText>

    </RelativeLayout>