2012-03-11 6 views
0

私は電話番号を入力すると、それはintのために1桁大きいと信じていますが、私はそれを何かに変更しようとするとまだ動作しません。 int型のリテラル2286719584は範囲外です。Androidデータベースエラー:int型のリテラル2286719584が範囲外です。

パッケージcom.mike.Make2;

パブリッククラスユーザー{

//private variables 
int _phone; 
String _fname; 
String _lname; 

// Empty constructor 
public User(){ 

} 
// constructor 
public User(int phoneid, String fname, String lname){ 
    this._phone = phoneid; 
    this._fname = fname; 
    this._lname = lname; 
} 

// constructor 
public User(String fname, String lname){ 
    this._fname = fname; 
    this._lname = lname; 
} 
// getting phone ID 
public int getPhoneID(){ 
    return this._phone; 
} 

// setting phone id 
public void setPhoneID(int phoneid){ 
    this._phone = phoneid; 
} 

// getting first name 
public String getFirstName(){ 
    return this._fname; 
} 

// setting first name 
public void setFirstName(String fname){ 
    this._fname = fname; 
} 

// getting last name 
public String getLastName(){ 
    return this._lname; 
} 

// setting first name 
public void setLastName(String lname){ 
    this._lname = lname; 
} 

}

パッケージcom.mike.Make2。

import android.content.ContentValues; 
import android.content.Context; 
import android.database.Cursor; 
import android.database.sqlite.SQLiteDatabase; 
import android.database.sqlite.SQLiteOpenHelper; 

public class UserDatabase extends SQLiteOpenHelper { 

    // All Static variables 
    // Database Version 
    private static final int DATABASE_VERSION = 1; 

    // Database Name 
    private static final String DATABASE_NAME = "makingtime"; 

    // User table name 
    private static final String TABLE_USER = "user"; 

    // User Table Columns name 
    private static final String KEY_ID = "phone_number"; 
    private static final String KEY_NAME = "fname"; 
    private static final String KEY_NAME2 = "lname";    


    public UserDatabase(Context context) { 
     super(context, DATABASE_NAME, null, DATABASE_VERSION); 
    } 

    // Creating Tables 
    @Override 
    public void onCreate(SQLiteDatabase us) { 
     String CREATE_USER_TABLE = "CREATE TABLE " + TABLE_USER + "(" 
       + KEY_ID + " INTEGER PRIMARY KEY ," + KEY_NAME + " TEXT," 
       + KEY_NAME2 + " TEXT" + ")"; 
     us.execSQL(CREATE_USER_TABLE); 
    } 

    // Upgrading database 
    @Override 
    public void onUpgrade(SQLiteDatabase us, int oldVersion, int newVersion) { 
     // Drop older table if existed 
     us.execSQL("DROP TABLE IF EXISTS " + TABLE_USER); 

     // Create tables again 
     onCreate(us); 
    } 

    // Adding new contact to user 
    void addUser(User user) { 
     SQLiteDatabase us = this.getWritableDatabase(); 

     ContentValues values = new ContentValues(); 
     values.put(KEY_ID, user.getPhoneID()); // contacts phone number 
     values.put(KEY_NAME, user.getFirstName()); // Contact first name 
     values.put(KEY_NAME2, user.getLastName()); // Contact last name 

     // Inserting Row 
     us.insert(TABLE_USER, null, values); 
     us.close(); // Closing database connection 
    } 

    // Getting single contact user 
    User getUser(int id) { 
     SQLiteDatabase us = this.getReadableDatabase(); 

     Cursor cursor = us.query(TABLE_USER, new String[] { KEY_ID, 
       KEY_NAME, KEY_NAME2 }, KEY_ID + "=?", 
       new String[] { String.valueOf(id) }, null, null, null, null); 
     if (cursor != null) 
      cursor.moveToFirst(); 

     User user = new User(Integer.parseInt(cursor.getString(0)), 
       cursor.getString(1), cursor.getString(2)); 
     // return user 
     return user; 
    } 


    // Updating single contact 
    public int updateUser(User user) { 
     SQLiteDatabase us = this.getWritableDatabase(); 

     ContentValues values = new ContentValues(); 
     values.put(KEY_ID,user.getPhoneID()); 
     values.put(KEY_NAME, user.getFirstName()); 
     values.put(KEY_NAME2, user.getLastName()); 

     // updating row 
     return us.update(TABLE_USER, values, KEY_ID + " = ?", 
       new String[] { String.valueOf(user.getPhoneID()) }); 
    } 
    public int deleteAll() 
    { 
     SQLiteDatabase us = this.getWritableDatabase(); 
     return us.delete(TABLE_USER, null, null); 
    } 
    public void delete_byPhonenumber(int id) 
    { 
     SQLiteDatabase us = this.getWritableDatabase(); 
     us.delete(TABLE_USER, KEY_ID+"="+id, null); 
    } 
    // Deleting single contact 
    public void deleteUser(User user) 
    { 
     SQLiteDatabase us = this.getWritableDatabase(); 

     us.delete(TABLE_USER, KEY_ID + " = ?", new String[] { String.valueOf(user.getPhoneID()) }); 
     us.close(); 
    } 

    // Getting contacts Count 
    public int getUserCount() { 
     String countQuery = "SELECT * FROM " + TABLE_USER; 
     SQLiteDatabase us = this.getReadableDatabase(); 
     Cursor cursor = us.rawQuery(countQuery, null); 
     cursor.close(); 

     // return count 
     return cursor.getCount(); 
    } 

} 

パッケージcom.mike.Make2;

import java.util.List; 
import android.app.Activity; 
import android.os.Bundle; 
import android.util.Log; 
import android.widget.TextView; 


public class SQLiteImplement extends Activity { 
    TextView display,display2,display3; 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.showdb); 


     display = (TextView) findViewById (R.id.tvdb1); 

     ContactDatabase db = new ContactDatabase(this); 
     UserDatabase us = new UserDatabase(this); 
     // Inserting Contacts 
     Log.d("Insert: ", "Inserting .."); 


     db.addContact(new Contact("Michael", "2286970002")); 
     db.addContact(new Contact("David", "2282160000")); 
     db.addContact(new Contact("Brandon", "2286719584")); 

     us.addUser(new User(2286719584,"Michael","Lynn")); 

     // Reading all contacts 
     Log.d("Reading: ", "Reading all contacts.."); 
     List<Contact> contacts = db.getAllContacts();   

     for (Contact cn : contacts) 
     { 
      String log = "Id: "+cn.getID()+" ,Name: " + cn.getName() + " ,Phone: " + cn.getPhoneNumber(); 
      // need a listAdapter her 
      display.setText(log + " last one"); 
      // Writing Contacts to log 
     Log.d("Name: ", log); 
     } 

     // db.delete_byID(0); starts at 0 
     us.delete_byPhonenumber(2286719584); 
     // db.deleteAll(); delete all contacts in the table 
     // us.deleteALL(); delete the main user in the table 
    } 
} 

答えて

1

電話番号は、文字列(または代表タイプ)を使用して格納する必要があります。

これは、ドイツのような国では、電話番号の先頭にゼロが付いていることがあります。整数を使用してそれらを格納すると、それらの先行ゼロはなくなります。

また、数字で計算したくないので、VARCHAR(MySQLの場合)またはTEXT(SQLiteの場合)を使用する方が良い考えです。

関連する問題