当前位置: 首页 > 知识库问答 >
问题:

用于存储联系人的Android应用程序

富昕
2023-03-14

我开始学习Android编程,有一个这样的任务:

创建Android应用程序,在其中实现以下功能:

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“上的语法错误,该标记后需要标识符-标记上的语法错误”(“,delete this token-标记上的语法错误,删除这些标记”)

此行有多个标记-内标识语法错误,应为AnnotationName-内标识“SetName”语法错误,此内标识后应为Identifier-语法错误,插入“Type VariableDeclaratorID”以完成FormalParameterList“

此行有多个标记-内标识“setphone”上的语法错误,在此内标识之后需要标识符-语法错误,插入“Type variableDeclaratorId”以完成FormalParameterList-内标识上的语法错误,需要AnnotationName

有人帮忙吗?:(

共有1个答案

孙元明
2023-03-14

这部分代码必须在某个方法中,而不仅仅是在类体中。将这部分代码转移到其他需要的地方(我不懂逻辑,所以说不出它应该在哪里):

Contact contact = new Contact ();
 contact.setID(Integer.parseInt(cursor.getString(0)));
 contact.setName(cursor.getString(1));
 contact.setPhone(cursor.getString(2));
 类似资料:
  • 问题内容: 在我的android应用程序中,我用以下代码读出了所有联系人: 这就是我试图为每个联系人读出生日事件的方式。但是显然它还不起作用。那么,如何正确读出联系人的生日? 问题答案: 温馨提示: 某些OEM会提供自己的联系人提供商(不是标准的Android提供商),并且 可能 未遵循标准的Android惯例。例如,com.android.providers.contacts.HtcContac

  • 问题内容: 我正在尝试直接从我的应用程序更新我的电话簿的联系人。我可以添加和删除联系人,但是更新什么也没做! 在插入之后或当我抓住联系人时,我将收集CONTACT_ID(又称_ID)。 这是我的更新代码: 给我当前联系人的_ID值。 并给我联系人的名字。 给我他的照片uri。最后给我他的电话号码。 Log行为我提供了正确的_ID值,我认为问题不出在这里。我做错什么了吗? 谢谢。 问候。 V. 整个

  • 错误: I/flutter(1615)://data/user/0/com.example.camera_app/app_flutter/2020-05-29 23:35:12.398628.PNG I/flutter(1615):Going Image I/flutter(1615):404 I/flutter(1615):Image Send I/flutter(1615):form come

  • 我想创建一个代码,在没有任何提示的情况下将联系人添加到android联系人列表中,但我得到了这个异常。如果你有另一个想法,我可以添加一个联系人到联系人列表没有任何窗口出现,请与我分享。我是java新手,所以如果你想帮助我展示一个例子或纠正我的代码,请。 logcat: 我也会尝试这个代码,它工作,但一个确认窗口出现

  • 我正在开发一个可以创建用户配置文件的应用程序。我需要能够看到谁从我的联系人已经安装了应用程序,以便我能够授予他们访问我的个人资料和看到他们的个人资料。 我知道有可能通过使用Apple API获得联系人列表,但我是否必须将所有信息发送到服务器,以检查他们是否安装了该应用程序? 谢谢你。