電話の連絡先を自分のデータベースに保存するにはどうすればよいですか

シャザール

私はAndroidプラットフォームでContactベースアプリケーションに取り組んでいます。CONTACT電話アプリのすべてのデータを自分のSqliteデータベースに書き込んだり保存したりして、機能を追加できるようにします。

これが私のソースコードです:

package com.webpreneur_contactlist;



    import android.app.ListActivity;
    import android.content.Intent;
    import android.database.Cursor;
    import android.os.Bundle;
    import android.support.v4.widget.SimpleCursorAdapter;
    import android.util.Log;
    import android.view.Menu;
    import android.view.MenuItem;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.Button;
    import android.widget.ImageButton;
    import android.widget.ListAdapter;
    import android.widget.ListView;
    import android.widget.Toast;

        public class WebpreneurActivity extends ListActivity {

            private static final int CONTACT_CREATE = 0;
            private static final int CONTACT_EDIT = 1;
         public static  long id1;
            //select the second one, Android view menu
            private static final int INSERT_ID = Menu.FIRST;
            private static final int DELETE_ID = Menu.FIRST + 1;

            private DBHandler dbHelper;
            private Cursor c;
            ImageButton imageButton;
             public static long  rowId;
            @Override
            protected void onCreate(Bundle savedInstanceState) {
                Log.d("database1" ,"0");
                Log.d("Your Location4", "ok4:");
                super.onCreate(savedInstanceState);
                Log.d("database1" ,"1");
                setContentView(R.layout.activity_webpreneur);
                Log.d("database1" ,"2");
                dbHelper = new DBHandler(this);
                Log.d("database1" ,"3");
                dbHelper.open();
                fillData();
                //dbHelper.open();

                //addListenerOnButton();
            //dbHelper.addContact();

            imageButton = (ImageButton) findViewById(R.id.imageButton1);
            Log.d("database1" ,"button");
            imageButton.setOnClickListener(new View.OnClickListener() {

                @Override
                public void onClick(View arg0) {
                    Log.d("database1" ,"b4");
                    Intent i = new Intent(getApplicationContext(), ContactEdit.class);
                    startActivityForResult(i, CONTACT_CREATE);

                    Log.d("database1" ,"button3");
                    //fillData();

                }

            });

            //dbHelper.close();
        }








        @SuppressWarnings("deprecation")
        public void fillData() {
            Log.d("Your Location4", "ok6:");
            c = dbHelper.fetchAllRows();
            Log.d("Your Location4", "ok8:");
            //startManagingCursor(c);
            Log.d("Your Location4", "ok2:");
             NoIdCursorWrapper nc = new NoIdCursorWrapper(c, DBHandler.Key_ID);
            ListAdapter adapter = new SimpleCursorAdapter(this,
                    R.layout.contact_row, nc, new String[] { DBHandler.Key_Name,
                            DBHandler.Key_Phone }, new int[] { R.id.name,
                            R.id.phonenumber });
            setListAdapter(adapter);
        }




            protected void onListItemClick(ListView l, View v, int position,   long id) {
                super.onListItemClick(l, v, position, id);

                Intent i = new Intent(this, ContactEdit.class);
                i.putExtra(DBHandler.Key_ID, c.getLong(c.getColumnIndex(DBHandler.Key_ID)));
                i.putExtra(DBHandler.Key_Name, c.getString(c.getColumnIndex(DBHandler.Key_Name)));
                i.putExtra(DBHandler.Key_Address, c.getString(c.getColumnIndex(DBHandler.Key_Address)));
                i.putExtra(DBHandler.Key_Phone, c.getString(c.getColumnIndex(DBHandler.Key_Phone)));
                i.putExtra(DBHandler.Key_Website, c.getString(c.getColumnIndex(DBHandler.Key_Home)));
                startActivityForResult(i, CONTACT_EDIT);
        }
            protected void onActivityResult(int requestCode, int resultCode,
                    Intent data) {
                super.onActivityResult(requestCode, resultCode, data);

                if (resultCode == RESULT_OK) {
                    String name = data.getStringExtra(DBHandler.Key_Name);
                    String address = data.getStringExtra(DBHandler.Key_Address);
                    String mobile = data.getStringExtra(DBHandler.Key_Phone);
                    String home = data.getStringExtra(DBHandler.Key_Home);
                    //String id = data.getStringExtra(DBHandler.Key_ID);
                    switch (requestCode) {
                    case CONTACT_CREATE:
                        Log.d("Your Location4", "jj:");
                        dbHelper.createRow(name, address, mobile, home);
                    Log.d("Your Location4"  , "ok90:");
                        fillData();
                        break;
                    case CONTACT_EDIT:

                        //String id = data.getStringExtra(DBHandler.Key_ID);
                        //long rowId=Long.parseLong(DBHandler.Key_ID); ////Giving null pointer exception at this point
                        long rowId=data.getLongExtra(DBHandler.Key_ID, 0);
                         Log.d("Your Location4" , "ok9b:");
                        if (rowId != 0){
                            dbHelper.updateRow(rowId, name, address, mobile, home);
                        }
                        fillData();
                        break;

                    }
                }
            }
        }
スカイネット

クラスレベル:

Uri uri;
String[] projection;
String where;
String[] selectionArgs;

onCreate :(誕生​​日のあるレコードにはNote句が存在します)

uri = ContactsContract.Data.CONTENT_URI; // Set the URI for Query of Contacts database

    //==================================================================
    //Projection String Array (Fields we are interested in capturing) 
    //==================================================================
    projection = new String[] { ContactsContract.Contacts.DISPLAY_NAME,
            ContactsContract.CommonDataKinds.Phone.NUMBER,
            ContactsContract.CommonDataKinds.Event.CONTACT_ID,
            ContactsContract.CommonDataKinds.Event.START_DATE,
            ContactsContract.CommonDataKinds.Email.DATA,
            ContactsContract.Contacts.HAS_PHONE_NUMBER,
            ContactsContract.CommonDataKinds.Phone.NUMBER
    };


    //==================================================================
    //Where Clause for the Database Query
    //==================================================================
    where = ContactsContract.Data.MIMETYPE + "= ? AND "
            + ContactsContract.CommonDataKinds.Event.TYPE + "="
            + ContactsContract.CommonDataKinds.Event.TYPE_BIRTHDAY;




    // Easy? Selection args
    selectionArgs = new String[] { ContactsContract.CommonDataKinds.Event.CONTENT_ITEM_TYPE };



getLoaderManager().initLoader(0, null, this); //Loader init

onCreateの外部:

@Override
    public Loader<Cursor> onCreateLoader(int arg0, Bundle arg1) {

        CursorLoader loader = new CursorLoader(this, uri, projection, where,
                selectionArgs, null);
        return loader;
    }

    //  @SuppressWarnings("unchecked")
    @Override
    public void onLoadFinished(Loader<Cursor> loader, Cursor cursor) {
        Map<String, List<String>> BD = new HashMap<String, List<String>>();

        if(cursor !=null){
            while (cursor.moveToNext()) {

                List<String> li = new ArrayList<String>();


                contactId = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Event.CONTACT_ID));
                li.add(contactId);


                String displayBirthday = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Event.START_DATE));
                //==================================================================
                // Handle the curious case of Date without Year
                //==================================================================
                if(displayBirthday.length()<8){
                    displayBirthday = displayBirthday.replace("--", "0001-"); 
                }
                //==================================================================
                String name = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
                li.add(displayBirthday);


                Uri phUri = Uri.withAppendedPath(ContactsContract.Contacts.CONTENT_URI,String.valueOf(contactId));



                String Ur = String.valueOf(phUri);


                li.add(Ur);
                String DateStr = displayBirthday;
                Date d = null;
                try {
                    d = new SimpleDateFormat("yyyy-MM-dd"/*, current*/).parse(DateStr);
                } catch (ParseException e) {
                    e.printStackTrace();
                }
                java.sql.Date d1 = new java.sql.Date(d.getTime());

                BD.put(name, li);
                li = null;

            }

BDは、レコードを含むハッシュマップです。DBに書き込みます。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

iOSで連絡先の電話番号を選択するにはどうすればよいですか?

分類Dev

デバイスのすべての連絡先から最初の電話番号のみを取得するにはどうすればよいですか?

分類Dev

ユーザーの連絡先から電話番号にすばやくアクセスするにはどうすればよいですか?

分類Dev

選択した連絡先の電話番号を取得するにはどうすればよいですか

分類Dev

連絡先がこのデータベースの可用性状態にある期間を計算するにはどうすればよいですか?

分類Dev

データベースに保存する前に米国の携帯電話番号を分割するにはどうすればよいですか?

分類Dev

連絡先のデフォルト以外の電話番号を選択するにはどうすればよいですか?

分類Dev

どのように私はFirebaseデータベースへの連絡先の電話番号を送信しますか?

分類Dev

携帯電話から連絡先情報や写真をエクスポートするにはどうすればよいですか?

分類Dev

WhatsappやViberのように、電話帳/連絡先にアプリの接続を追加するにはどうすればよいですか?

分類Dev

名前と電話番号で連絡先を検索するにはどうすればよいですか?

分類Dev

電話から連絡先を取得し、Androidのボタンクリックでリストビューに表示するにはどうすればよいですか?

分類Dev

CNContactを使用して、すべての連絡先の電話番号を1つのセルにまとめるにはどうすればよいですか。

分類Dev

すべての連絡先の電話番号を配列にするにはどうすればよいですか?

分類Dev

何百万もの連絡先を電報に追加するにはどうすればよいですか?

分類Dev

xamarin c#を介してAndroidで複数の電話番号の連絡先を追加するにはどうすればよいですか?

分類Dev

RxAndroid:電話帳からすべての連絡先を抽出するにはどうすればよいですか?

分類Dev

連絡先から連絡先画像のURLを取得するにはどうすればよいですか?

分類Dev

連絡先情報をリストビューにロードするときに連絡先名(データ)の重複を回避するにはどうすればよいですか?

分類Dev

電話の連絡先番号をFirebaseの登録番号と比較するにはどうすればよいですか?

分類Dev

連絡先フォーム7に、フォームの郵送時に値データではなくチェックボックスラベルを返すようにするにはどうすればよいですか?

分類Dev

Androidの連絡先リスト-アプリで作成した連絡先を電話の他の部分から分離するにはどうすればよいですか?

分類Dev

デバイスの連絡先リストからユーザーの接続を取得するにはどうすればよいですか?

分類Dev

特定の電話番号が連絡先に保存されているかどうかを、ほとんど時間をかけずに確認するにはどうすればよいですか?

分類Dev

番号の形式が異なる場合、ユーザーの連絡先リストの電話番号を照合するにはどうすればよいですか?

分類Dev

Angular 2に関数を追加するには、連絡先データベースの新しいIDを取得するにはどうすればよいですか?

分類Dev

Windows Liveメールの連絡先を復元するにはどうすればよいですか?

分類Dev

電話帳からAndroidの特定の連絡先にリンクされているすべてのソーシャルアカウントを取得するにはどうすればよいですか?

分類Dev

連絡先のリストが長いAppleの連絡先フレームワークを使用してiOSの連絡先をより迅速に取得するにはどうすればよいですか?

Related 関連記事

  1. 1

    iOSで連絡先の電話番号を選択するにはどうすればよいですか?

  2. 2

    デバイスのすべての連絡先から最初の電話番号のみを取得するにはどうすればよいですか?

  3. 3

    ユーザーの連絡先から電話番号にすばやくアクセスするにはどうすればよいですか?

  4. 4

    選択した連絡先の電話番号を取得するにはどうすればよいですか

  5. 5

    連絡先がこのデータベースの可用性状態にある期間を計算するにはどうすればよいですか?

  6. 6

    データベースに保存する前に米国の携帯電話番号を分割するにはどうすればよいですか?

  7. 7

    連絡先のデフォルト以外の電話番号を選択するにはどうすればよいですか?

  8. 8

    どのように私はFirebaseデータベースへの連絡先の電話番号を送信しますか?

  9. 9

    携帯電話から連絡先情報や写真をエクスポートするにはどうすればよいですか?

  10. 10

    WhatsappやViberのように、電話帳/連絡先にアプリの接続を追加するにはどうすればよいですか?

  11. 11

    名前と電話番号で連絡先を検索するにはどうすればよいですか?

  12. 12

    電話から連絡先を取得し、Androidのボタンクリックでリストビューに表示するにはどうすればよいですか?

  13. 13

    CNContactを使用して、すべての連絡先の電話番号を1つのセルにまとめるにはどうすればよいですか。

  14. 14

    すべての連絡先の電話番号を配列にするにはどうすればよいですか?

  15. 15

    何百万もの連絡先を電報に追加するにはどうすればよいですか?

  16. 16

    xamarin c#を介してAndroidで複数の電話番号の連絡先を追加するにはどうすればよいですか?

  17. 17

    RxAndroid:電話帳からすべての連絡先を抽出するにはどうすればよいですか?

  18. 18

    連絡先から連絡先画像のURLを取得するにはどうすればよいですか?

  19. 19

    連絡先情報をリストビューにロードするときに連絡先名(データ)の重複を回避するにはどうすればよいですか?

  20. 20

    電話の連絡先番号をFirebaseの登録番号と比較するにはどうすればよいですか?

  21. 21

    連絡先フォーム7に、フォームの郵送時に値データではなくチェックボックスラベルを返すようにするにはどうすればよいですか?

  22. 22

    Androidの連絡先リスト-アプリで作成した連絡先を電話の他の部分から分離するにはどうすればよいですか?

  23. 23

    デバイスの連絡先リストからユーザーの接続を取得するにはどうすればよいですか?

  24. 24

    特定の電話番号が連絡先に保存されているかどうかを、ほとんど時間をかけずに確認するにはどうすればよいですか?

  25. 25

    番号の形式が異なる場合、ユーザーの連絡先リストの電話番号を照合するにはどうすればよいですか?

  26. 26

    Angular 2に関数を追加するには、連絡先データベースの新しいIDを取得するにはどうすればよいですか?

  27. 27

    Windows Liveメールの連絡先を復元するにはどうすればよいですか?

  28. 28

    電話帳からAndroidの特定の連絡先にリンクされているすべてのソーシャルアカウントを取得するにはどうすればよいですか?

  29. 29

    連絡先のリストが長いAppleの連絡先フレームワークを使用してiOSの連絡先をより迅速に取得するにはどうすればよいですか?

ホットタグ

アーカイブ