2015-11-11 126 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()方法。