2013-07-09 50 views
0

我想添加「播放器名稱」到我的數據庫中的表。它插入第一個完美的罰款,然後崩潰的第二個名字。Android:sqlite記錄插入工作一次,但不是兩次

公共無效addTeam1Members(){// TODO自動生成方法存根

EditText playername, playerinit; 
    DBAccessMatch dbAccess = new DBAccessMatch(this); 

    String pname, pinit; 
    dbAccess.open(); 
    for (int x = 0; x < team1Players; x++) { 
     switch (x) { 
     case 0: 

      playername = (EditText) findViewById(R.id.etTeam1Player1); 
      GlobalVars.setTeam1PlayerNames(playername.getText().toString(), 
        x); 
      GlobalVars.sT1P1 = playername.getText().toString(); 
      playerinit = (EditText) findViewById(R.id.etTeam1Player1Init); 
      GlobalVars.setTeam1PlayerInit(playerinit.getText().toString(), 
        x); 
      if (playername.getText().toString().trim().isEmpty() == true) { 
       pname = " "; 
      } else { 
       pname = playername.getText().toString().trim(); 
      } 
      if (playerinit.getText().toString().trim().isEmpty() == true) { 
       pinit = " "; 
      } else { 
       pinit = playerinit.getText().toString().trim(); 
      } 
      Toast.makeText(getApplicationContext(), pname + " - " + pinit, Toast.LENGTH_SHORT).show(); 
      dbAccess.createPlayer(pname, pinit); 
      break; 
     case 1: 
      playername = (EditText) findViewById(R.id.etTeam1Player2); 
      GlobalVars.setTeam1PlayerNames(playername.getText().toString(), 
        x); 
      GlobalVars.sT1P2 = playername.getText().toString(); 
      playerinit = (EditText) findViewById(R.id.etTeam1Player2Init); 
      GlobalVars.setTeam1PlayerInit(playerinit.getText().toString(), 
        x); 
      if (playername.getText().toString().trim().isEmpty() == true) { 
       pname = " "; 
      } else { 
       pname = playername.getText().toString().trim(); 
      } 
      if (playerinit.getText().toString().trim().isEmpty() == true) { 
       pinit = " "; 
      } else { 
       pinit = playerinit.getText().toString().trim(); 
      } 
      Toast.makeText(getApplicationContext(), pname + " - " + pinit, Toast.LENGTH_SHORT).show(); 
      dbAccess.createPlayer(pname, pinit); 
      break; 

這是代碼的一小塊示出播放器1和播放器2他們最終比相同的EditText其他他們居住的箱子。

當createPlayer(name,initial)在第一次插入完美時運行,然後第二次沒有。

public void createPlayer(String playername, String playerinitials) { 

    try { 
     ContentValues cv = new ContentValues(); 
     cv.put(KEY_PLAYERNAME, playername); 
     cv.put(KEY_PLAYERINITIALS, playerinitials); 
     ourDatabase.insert(DATABASE_TABLE3, null, cv); 

    } catch (Exception e) { 
     String error = e.toString(); 
     Dialog d = new Dialog(null); 
     d.setTitle("Dang it!"); 
     TextView tv = new TextView(null); 
     tv.setText(error); 
     d.setContentView(tv); 
     d.show(); 
    } 

} 
+1

什麼是錯誤? – Jack

+0

沒有錯誤出現,它只是崩潰了程序。 LogCat不會說任何事情,但它不會添加第二個人。 – Vidar

+0

如果程序「崩潰」,則必須有某種錯誤。如果沒有 - 幫助你會很難。 – Jack

回答

0

在對這個問題做了一些研究後,我無法確定錯誤是什麼(使用logcat)。我將「創建用戶」功能移到了其他地方,並在該課程之外完成,並且一切正常。