2014-10-23 3 views
0

Я начал изучать Android программирования, и есть задача, как это:Android приложение для хранения контактов

Создать приложение для Android, в которой вы будете выполнять эти функциональные возможности:

хранения данных Make который будет держать информацию определенных контакта , (файл на SD-карте или базе данных). Этот файл на SD-карте/базе данных должен содержать данные в виде телефонных номеров определенных лиц. Отображение всех элементов файла, созданного в компоненте Список. Нажмите на определенный элемент в списке (контакт), чтобы отправить sms, чтобы выбрать его номер из хранилища.

Я сделал некоторый код, в основном идущий по книге с этой задачей, но у меня проблема, когда я должен установить идентификатор, имя и номер телефона контакта с помощью определенных методов набора.

Я определил класс Contact в Contact.java с конструкторами, установить и получить методы:

package com.example.zadatak1; 

public class Contact { 

    int id; 
    String name; 
    String phone; 

    public Contact(){ 

    } 

    public Contact(int id, String name, String phone){ 
     this.id=id; 
     this.name=name; 
     this.phone=phone; 
    } 

    public Contact(String name, String phone){ 
     this.name=name; 
     this.phone=phone; 
    } 

    public int getID(){ 
     return this.id; 
    } 

    public void setID(int id){ 
     this.id=id; 
    } 

    public String getName(){ 
     return this.name; 
    } 

    public void setName(String name){ 
     this.name=name; 
    } 

    public String getPhone(){ 
     return this.phone; 
    } 

    public void setPhone(String phone){ 
     this.phone=phone; 
    } 

} 

Проблема в Handler.java строк в конце файла:

package com.example.zadatak1; 

import java.util.ArrayList; 
import java.util.List; 

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

public class Handler extends SQLiteOpenHelper { 

    private static final String DB_NAME = "databaseContact"; 
    private static final String TABLE_NAME = "contacts"; 
    private static final String ID = "id"; 
    private static final String NAME = "name"; 
    private static final String PHONE = "phone_number"; 

    private static final int DATABASE_VERSION = 1; 

    public Handler(Context context){ 
     super(context, DB_NAME, null, DATABASE_VERSION); 
    } 



@Override 
public void onCreate(SQLiteDatabase db) { 

    String CREATE_CONTACTS = "CREATE_TABLE " + TABLE_NAME + ID + "INTEGER PRIMARY KEY," + NAME + "TEXT," + PHONE + "TEXT" + ")"; 
    db.execSQL(CREATE_CONTACTS); 
} 

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

void addContact(Contact contact){ 
    SQLiteDatabase db = this.getWritableDatabase(); 
    ContentValues values = new ContentValues(); 
    values.put(NAME, contact.getName()); 
    values.put(PHONE, contact.getPhone()); 

    db.insert(TABLE_NAME, null, values); 
    db.close(); 

} 

    Contact getContact(int id){ 
    SQLiteDatabase db = this.getReadableDatabase(); 

    Cursor cursor = db.query(TABLE_NAME, new String[]{ID,NAME,PHONE}, NAME, new String[]{String.valueOf(id)}, null, null, null, null); 
    if(cursor!=null) 
     cursor.moveToFirst(); 

    Contact contact = new Contact(Integer.parseInt(cursor.getString(0)), cursor.getString(1), cursor.getString(2)); 

    return contact; 

    } 

    public List<Contact> getAllContacts(){ 
     List<Contact> contactList = new ArrayList<Contact>(); 

     String selectQuery = "SELECT * FROM " + TABLE_NAME+ " ORDER BY " + NAME + "ASC"; 
     SQLiteDatabase db = this.getWritableDatabase(); 
     Cursor cursor = db.rawQuery(selectQuery, null); 

     return contactList; 
    } 

     Contact contact = new Contact(); 
     contact.setID(Integer.parseInt(cursor.getString(0))); 
     contact.setName(cursor.getString(1)); 
     contact.setPhone(cursor.getString(2)); 

} 

для " SetID "," setName "и" setPhone "Я получил ошибки: " Несколько маркеров в этой строке - Ошибка синтаксиса на токенах, AnnotationName ожидается вместо - Ошибка синтаксиса на токене "setID", Ide ntifier ожидается после этот маркер - Синтаксическая ошибка на маркер «(» удалить этот маркер - ошибка синтаксиса на лексемы, удалить эти маркеры «

» Множественные маркеры на этой линии - ошибка синтаксиса на маркерах AnnotationName ожидается вместо - Синтаксическая ошибка на лексемы «SetName», идентификатор ожидается после этого маркера - ошибка синтаксиса, вставить «Тип VariableDeclaratorId», чтобы завершить FormalParameterList «

» Множественные маркеры на этой линии - ошибка синтаксиса на лексемы „setPhone“, Идентификатор, ожидаемый после этого токена - Синтаксическая ошибка, вставить "Тип VariableDeclaratorId", чтобы завершить FormalParameterList - ошибка синтаксиса на лексемы, AnnotationName ожидается вместо»

Любая помощь? :(

ответ

0

Эта часть кода должна быть в некотором методе, а не только в теле класса. Перенесите эту часть кода в другое необходимое место (я не знаю логики, поэтому не могу сказать, где это должно быть):

Contact contact = new Contact(); 
contact.setID(Integer.parseInt(cursor.getString(0))); 
contact.setName(cursor.getString(1)); 
contact.setPhone(cursor.getString(2)); 
+0

Спасибо :) Я попробую в этот уик-энд и отправлю, если это сработает :) – Boki

0

Попробуйте это ..

1) вы не использовали методы получения и сеттер надлежащее место

2) вы не заполнить список массива

public List<Contact> getAllContacts() { 
     List<Contact> contactList = new ArrayList<Contact>(); 

     try { 

      String selectQuery = "SELECT * FROM " + TABLE_NAME+ " ORDER BY " + NAME + "ASC"; 
      SQLiteDatabase db = this.getWritableDatabase(); 
      Cursor cursor = db.rawQuery(selectQuery, null); 

      if (cursor != null && cursor.getCount() > 0) { 
       if (cursor.moveToFirst()) { 
        do { 
         Contact contact = new Contact(); 
         contact.setID(Integer.parseInt(cursor.getString(0))); 
         contact.setName(cursor.getString(1)); 
         contact.setPhone(cursor.getString(2)); 

         contactList.add(contact); 

        } while (cursor.moveToNext()); 

       } 

      } 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
     return contactList; 
    } 
+0

Спасибо :) Я попробую в этот уик-энд и напишу, если это сработает :) – Boki

Смежные вопросы