2016-04-21 155 views
-2

我正在尝试使日志页面但此代码无法正常运行 应用程序运行tym说不幸已停止我不是没有为什么。我是新的android任何一个plzz help .i我很沮丧运行应用程序后已停止应用程序

数据库文件!从该文件的文件

public class MainActivity extends AppCompatActivity { 
     EditText mEditTextName,mEditTextPassword,mEditTextPhone,mEditTextAddress; 
     Button mButtonRegistration; 
     String getName,getPassword,getPhone,getAddress; 
     @Override 
     protected void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.activity_main); 

     mEditTextName=(EditText)findViewById(R.id.name); 
     mEditTextPassword=(EditText)findViewById(R.id.password); 
     mEditTextPhone=(EditText)findViewById(R.id.phone); 
     mEditTextAddress=(EditText)findViewById(R.id.address); 
     mButtonRegistration=(Button)findViewById(R.id.register); 

     mButtonRegistration.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 

       getName=mEditTextName.getText().toString(); 
       getPassword=mEditTextPassword.getText().toString(); 
       getPhone=mEditTextPhone.getText().toString(); 
       getAddress=mEditTextAddress.getText().toString(); 

       RegistrationDetailsDataBaseFile objOfRegistrationDetailsDataBaseFile=new RegistrationDetailsDataBaseFile(getBaseContext()); 

       objOfRegistrationDetailsDataBaseFile.setName(getName); 
       Toast.makeText(getBaseContext(), "name", Toast.LENGTH_LONG).show(); 


      } 
     }); 

    } 
} 
+0

请张贴logcat的 – Pooya

+0

@Pooya的相关内容我在android系统的stdio是新我如何发布logcat的内容 –

+0

在创建表的QUERY语句中,您没有定义任何类型的列名称,密码,电话和地址。此外使用空格或逗号分隔列 –

回答

0

public class RegistrationDetailsDataBaseFile extends SQLiteOpenHelper { 

    public static final String DATABASE_NAME="registrationDataBase.db"; 
    public static final String TABLE_NAME="registrationTable"; 
    public static final String NAME="name"; 
    public static final String PASSWORD="password"; 
    public static final String PHONE="phone"; 
    public static final String ADDRESS="address"; 

    private static final String QUERY="CREATE TABLE "+TABLE_NAME+"(id integer primary key autoincrement"+NAME+"not null"+PASSWORD+"not null"+PHONE+"not null"+ADDRESS+"not null)"; 

    RegistrationDetailsDataBaseFile(Context context){ 
     super(context,DATABASE_NAME,null,1); 

    } 

    public void onCreate(SQLiteDatabase db){ 

     db.execSQL(QUERY); 
    } 

    public void onUpgrade(SQLiteDatabase db,int oldVersion,int newVersion) 
    { 
     db.execSQL("drop table if exists"+TABLE_NAME); 
     onCreate(db); 
    } 

    public void setName(String nam){ 
     SQLiteDatabase db=this.getWritableDatabase(); 
     ContentValues contentValues=new ContentValues(); 
     contentValues.put(NAME,nam); 
     db.insert(TABLE_NAME,null,contentValues); 
     db.close(); 
    } 
} 

发送数据时并没有定义任何类型的列。还有间距问题。要创建表的修改您的查询语句如下:

private static final String QUERY="CREATE TABLE "+TABLE_NAME+" (id integer primary key autoincrement, "+NAME+" TEXT NOT NULL, "+PASSWORD+" TEXT NOT NULL, "+PHONE+" TEXT NOT NULL, "+ADDRESS+"TEXT NOT NULL);"; 

而且修改onUpgrade()方法如下:

public void onUpgrade(SQLiteDatabase db,int oldVersion,int newVersion) 
{ 
    db.execSQL("drop table if exists "+TABLE_NAME); 
    onCreate(db); 
}