2015-11-11 47 views
0

因此,我正在Android Studio中创建一个应用程序,它是一个非常简单的MYSQL应用程序,它具有一个窗口,您可以在其中放入信息并将其保存到数据库。但是,每当我按下完成按钮,什么也没有发生。任何人都可以观察我可能出错的地方吗?Android Studio中的简单MYSQL不工作(创建数据库)

这是主要的活动课

public class MainActivity extends AppCompatActivity { 
DatabaseHelper myDb; 
EditText edittime, editdesc, editiniti; 
Button buttonadd; 


@Override 

protected void onCreate(Bundle savedInstanceState) { 
    DatabaseHelper myDb; 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    myDb = new DatabaseHelper(this); 
    edittime = (EditText)findViewById(R.id.editText_time); 
    editdesc = (EditText)findViewById(R.id.editText_desc); 
    editiniti = (EditText)findViewById(R.id.editText_initi); 
    buttonadd = (Button) findViewById(R.id.buttonadddata); 




} 
public void AddData(){ 
    buttonadd.setOnClickListener(
      new View.OnClickListener() { 
       @Override 
       public void onClick(View v) { 
       boolean isInserted = myDb.insertData (editdesc.getText().toString(), 
        editiniti.getText().toString()); 
        if (isInserted = true) 
         Toast.makeText(MainActivity.this, "Data is inserted", Toast.LENGTH_LONG).show(); 
        else 
         Toast.makeText(MainActivity.this, "Data not inserted", Toast.LENGTH_LONG).show(); 

       } 
      } 

    ); 
} 

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.menu_main, menu); 
    return true; 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
Handle action bar item clicks here. The action bar will 
automatically handle clicks on the Home/Up button, so long 
as you specify a parent activity in AndroidManifest.xml. 
int id = item.getItemId(); 

    //noinspection SimplifiableIfStatement 
    if (id == R.id.action_settings) { 
     return true; 
    } 

    return super.onOptionsItemSelected(item); 
} 
    }  

这是数据库辅助类

public class DatabaseHelper extends SQLiteOpenHelper { 

public static final String DATABASE_NAME = "Tasks.db"; 
public static final String TABLE_NAME = "Tasks_table"; 
public static final String COL_1 = "ID"; 
public static final String COL_2 = "TIME"; 
public static final String COL_3 = "Desc"; 
public static final String COL_4 = "initi"; 
public boolean insertData; 

public DatabaseHelper(Context context) { 
    super(context, DATABASE_NAME, null, 1); 
    SQLiteDatabase db = this.getWritableDatabase(); 
} 

@Override 
public void onCreate(SQLiteDatabase db) { 
    db.execSQL("create table " + TABLE_NAME + "(ID INTEGER PRIMARY KEY AUTOINCREMENT, TIME TIME, Desc TEXT, initi TEXT)"); 

} 

@Override 
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 
    db.execSQL("DROP TABLE IF EXISTS" + TABLE_NAME); 
    onCreate(db); 

} 

public boolean insertData(String Desc, String initi) { 
    SQLiteDatabase db = this.getWritableDatabase(); 
    ContentValues contentValues = new ContentValues(); 

    contentValues.put(COL_3, Desc); 
    contentValues.put(COL_4, initi); 
    long result = db.insert(TABLE_NAME, null, contentValues); 
    if (result == -1) 
     return false; 
    else 
     return true; 



} 

}

我不认为XML文件是必要的,但如果是这样,我会在这里发布它们。

+0

你没有使用mysql,但sqlite,尝试一些简单的调试(System.out.println)或使用IDE来调试...,检查错误并更新您的问题 –

回答

0

我的朋友。 SQLiteOpenHelper和MySQL是两个不同的东西......

如果你想使用SQLite我建议你

http://greendao-orm.com/ 如果你想使用MySQL,你必须这样做的“服务器”部分,全心全意事情虽然一个API ...

+0

我刚加倍检查视频它说SQLIte,所以greendao所说的是它为你做了一切事情? – New2Math

+0

是的,greendao可以做任何事情。它会进入你的脑海,找出你想要做的事情,然后神奇地将代码输入到你的项目中。 – OWADVL

0

SQLite是位于您的Android设备内的本地数据库。要写在外部数据库上,你最好的办法就是创建一个小型的Web服务。

+0

这是SqLite,我的不好,但它仍然没有工作。 – New2Math

0

这是因为按钮没有连接到它的事件监听器。您必须在onCreate(..)方法内调用AddData()方法,因为它是将事件侦听器附加到按钮的AddData()方法。