Android 未创建Sqlite数据库或DatabaseHandler.java的构造函数不工作
数据库没有创建,我不明白为什么 LoginActivity.javaAndroid 未创建Sqlite数据库或DatabaseHandler.java的构造函数不工作,android,Android,数据库没有创建,我不明白为什么 LoginActivity.java public class LoginActivity extends Activity implements OnClickListener { DatabaseHandler mdb; private EditText user, pass; private Button mSubmit, mRegister; // Progress Dialog private ProgressDialog pDialog; //J
public class LoginActivity extends Activity implements OnClickListener {
DatabaseHandler mdb;
private EditText user, pass;
private Button mSubmit, mRegister;
// Progress Dialog
private ProgressDialog pDialog;
//JSON parser class
JSONParser jsonParser = new JSONParser();
private static final String LOGIN_URL = "http://10.0.2.2/Baby/Baby_login_api/login.php";
//从真实服务器进行测试:
//private static final String LOGIN_URL = "http://www.yourdomain.com/webservice/login.php";
//JSON element ids from repsonse of php script:
private static final String TAG_SUCCESS = "success";
private static final String TAG_MESSAGE = "error_msg";
private static final String TAG_ID = "uid";
private static final String TAG_NAME = "name";
private static final String TAG_MOBILE = "mobile";
private static final String TAG_MB_CONFIRM = "mb_confirm";
@Override
protected void onCreate (Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.login);
//setup input fields
user = (EditText)findViewById(R.id.loginEmail);
pass = (EditText)findViewById(R.id.loginPassword);
mdb= new DatabaseHandler(this);
//setup buttons
mSubmit = (Button)findViewById(R.id.btnLogin);
mRegister = (Button)findViewById(R.id.btnLinkToRegisterScreen);
//register listeners
mSubmit.setOnClickListener(this);
mRegister.setOnClickListener(this);
}
public void onClick(View v) {
switch (v.getId()) {
case R.id.btnLogin:
new AttemptLogin().execute();
break;
case R.id.btnLinkToRegisterScreen:
Intent i = new Intent(this, RegisterActivity.class);
startActivity(i);
break;
default:
break;
}
}
还有DatabaseHandler来创建数据库,但在这里我无法访问构造函数
public class DatabaseHandler extends SQLiteOpenHelper{
private static final int DATABASE_VERSION =1;
private static final String DATABASE_NAME = "BabyApplication.db";
private static final String TABLE_NAME = "login";
private static final String KEY_ID = "id";
private static final String KEY_USER_ID = "u_id";
private static final String KEY_NAME = "name";
private static final String KEY_MOBILE = "mobile";
private static final String KEY_MOBILE_CONFIRM = "mobile_confirm";
public DatabaseHandler(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
// TODO Auto-generated constructor stub
}
// private static final String STRING_CREATE = "CREATE TABLE "+TABLE_NAME+" (_id INTEGER PRIMARY KEY AUTOINCREMENT, "
//+COL_NAME+" TEXT, "+COL_DATE+" DATE);";
private static final String CREATE_TABLE = "CREATE TABLE "+TABLE_NAME+
"(id INTEGER PRIMARY KEY AUTOINCREMENT, "
+KEY_ID+" TEXT, "
+KEY_NAME+" TEXT, "
+ KEY_MOBILE+" TEXT, "
+ KEY_MOBILE_CONFIRM+" TEXT);";
@Override
public void onCreate(SQLiteDatabase db) {
// TODO Auto-generated method stub
Log.d("TIS IS STARTING", "1");
db.execSQL(CREATE_TABLE);
Log.d("CREated", "Table");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated method stub
db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME);
onCreate(db);
}
public void addUser(String u_id, String u_name, String u_mobile,
String u_mb_confirm) {
// TODO Auto-generated method stub
Log.d("This is test", u_name);
}
}
尝试更改您的活动以包括以下内容。这些方法实际上根据各自的文档进行创建/打开/缓存
mdb=newdatabasehandler(这个);
mdb.getWritableDatabase()代码>
或
mdb=newdatabasehandler(这个);
mdb.getReadableDatabase()代码>您可以在GoodLuck中找到解决方案