2016-07-30 7 views
0

그냥 안드로이드 시작하고 간단한 데이터베이스를 만들려고 작동하지 않습니다.데이터베이스 생성 안드로이드/안드로이드 스튜디오

FoodMacrosTable.java 
public class FoodMacrosTable { 

public static final String DB_NAME = "FoodDatabase.db"; 
public static final int DB_VERSION = 1; 

public class FoodMacros implements BaseColumns { 

    public static final String TABLE_NAME = "FoodMacros"; 


    public static final String FOOD_NAME = "Food name"; 
    public static final String FOOD_PROTEIN = "Amount of protein in 100g"; 
    public static final String FOOD_CARBS = "Amount of carbs in 100g"; 
    public static final String FOOD_FATS = "Amount of fats in 100g"; 
    public static final String FOOD_CALORIES = "Amount of calories in 100g"; 
    public static final String FOOD_VIT_A = "% of daily needs in 100g"; 

    public final String[] TABLE_COLUMNS = {FOOD_NAME,FOOD_PROTEIN,FOOD_CARBS,FOOD_FATS,FOOD_CALORIES, 
      FOOD_VIT_A}; 

} 

}

HealthyDbHanbler.java 

public class HealthyDbHandler extends SQLiteOpenHelper { 

public HealthyDbHandler(Context context){ 
    super(context,FoodMacrosTable.DB_NAME,null,FoodMacrosTable.DB_VERSION); 
} 

@Override 
public void onCreate(SQLiteDatabase sqLiteDatabase) { 
    String createTable = "CREATE TABLE " + FoodMacrosTable.FoodMacros.TABLE_NAME + " (" + 
      FoodMacrosTable.FoodMacros._ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " + 
      FoodMacrosTable.FoodMacros.FOOD_NAME + " TEXT NOT NULL, " + 
      FoodMacrosTable.FoodMacros.FOOD_PROTEIN + " TEXT NOT NULL, " + 
      FoodMacrosTable.FoodMacros.FOOD_CARBS + " TEXT NOT NULL, " + 
      FoodMacrosTable.FoodMacros.FOOD_FATS + " TEXT NOT NULL, " + 
      FoodMacrosTable.FoodMacros.FOOD_CALORIES + " TEXT NOT NULL, " + 
      FoodMacrosTable.FoodMacros.FOOD_VIT_A + " TEXT NOT NULL);"; 

    sqLiteDatabase.execSQL(createTable); 


} 

@Override 
public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) { 
    sqLiteDatabase.execSQL("DROP TABLE IF EXISTS " + FoodMacrosTable.FoodMacros.TABLE_NAME); 
    onCreate(sqLiteDatabase); 
} 

public void addFood(Food food){ 
    SQLiteDatabase db = this.getWritableDatabase(); 

    ContentValues values = new ContentValues(); 
    values.put(FoodMacrosTable.FoodMacros.FOOD_NAME,food.getFOOD_NAME()); 
    values.put(FoodMacrosTable.FoodMacros.FOOD_PROTEIN,food.getFOOD_PROTEIN()); 
    values.put(FoodMacrosTable.FoodMacros.FOOD_CARBS,food.getFOOD_CARBS()); 
    values.put(FoodMacrosTable.FoodMacros.FOOD_FATS,food.getFOOD_FATS()); 
    values.put(FoodMacrosTable.FoodMacros.FOOD_CALORIES,food.getFOOD_CALORIES()); 
    values.put(FoodMacrosTable.FoodMacros.FOOD_VIT_A,food.getFOOD_VIT_A()); 

    db.insert(FoodMacrosTable.FoodMacros.TABLE_NAME,null,values); 

    db.close(); 
} 

}

MainActivity.java 
public class MainActivity extends AppCompatActivity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    HealthyDbHandler db = new HealthyDbHandler(this) ; 
    Log.v("DBINFO","Database created"); 

} 

} 여기

은 내가 오류입니다 : 1시 42분 56초 여기

내 코드입니다 PM 바인딩 할 수 없습니다. 디버거 용 로컬 8600에 1:42:56 PM 호스트 컴퓨터의 소프트웨어에 의해 설정된 연결이 중단되었습니다. java.io.IOException : 호스트 시스템의 소프트웨어에 의해 설정된 연결이 중단되었습니다. at sun.nio.ch .SocketDispatcher.write0 (네이티브 메소드) at sun.nio.ch.SocketDispatcher.write (SocketDispatcher.java:51) at sun.nio.ch.IOUtil.writeFromNativeBuffer (IOUtil.java:93) at sun.nio. ch.IOUtil.write (IOUtil.java:65) at sun.nio.ch.SocketChannelImpl.write (SocketChannelImpl.java:471) at com.android.ddmlib.JdwpPacket.write (JdwpPacket.java:179) at com.android.ddmlib.Client.send (Client.java:654) at com.android.ddmlib.jdwp.JdwpAgent.send (JdwpAgent.java:9) 2) com.android.ddmlib.DeviceMonitor.createClient에서 com.android.ddmlib.Client.requestAllocationStatus (Client.java:517) 에서 com.android.ddmlib.HandleHeap.sendREAQ (HandleHeap.java:349) (AT 이 오류 com.android.ddmlib.DeviceMonitor.openClient에서 DeviceMonitor.java:573) (com.android.ddmlib.DeviceMonitor.processIncomingJdwpData에서 DeviceMonitor.java:545) (DeviceMoni (쇼 풍선)

+0

내가 (SQLite는 도구) 전에 DB를 생성하고 배포하는 것이 좋습니다 안드로이드 스튜디오, ADB 서버, 관련 항목에서 다시 활성화 장치에서 USB 디버깅, 또는 무언가를 다시 시작합니다 그것은 귀하의 애플 리케이션에 자산으로. 쉬운 방법. –

+0

다음에 시도해 보지만 먼저이 방법으로 배우고 싶습니다. –

+0

오류로 인해 Android Studio에서 앱을 시작할 수 없다고 말합니다. 디버거가 작동하지 않습니다. –

답변

관련 문제