20

Android Scripting と Python を使用して簡単なアプリを開発しようとしています。

今、私は電話番号を持っていて、その番号を持つ連絡先を見つけたいと思っています。contactGet() を実行して数字を検索することはできますが、非常に多くのプログラムがその機能を使用しているため、もっと簡単な方法があると思います。

同じ問題を抱えた質問がありますが、Java、Python に相当するものはありますか? 電話番号で連絡先を検索

それを達成する簡単な方法はありますか?

サンプルコードは大歓迎です。

編集、数日回答がなかった後、質問を少し変更することにしました:連絡先Get()で取得したリストの番号を検索する最良の方法は何ですか?

4

4 に答える 4

1
package com.slk.example.CursorActivity;
import android.app.ListActivity;
import android.content.Context;
import android.database.Cursor;
import android.os.Bundle;
import android.provider.Contacts.Phones;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.CursorAdapter;
import android.widget.TextView;

public class CursorActivity extends ListActivity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Cursor contactsCursor = this.managedQuery(Phones.CONTENT_URI, null, null, null, null);
        this.setListAdapter(new MyContactsAdapter(this,contactsCursor));
    }

    private class MyContactsAdapter extends CursorAdapter{
        private Cursor mCursor;
        private Context mContext;
        private final LayoutInflater mInflater;

        public MyContactsAdapter(Context context, Cursor cursor) {
            super(context, cursor, true);
            mInflater = LayoutInflater.from(context);
            mContext = context;
        }

        @Override
        public void bindView(View view, Context context, Cursor cursor) {
            TextView t = (TextView) view.findViewById(R.id.txtName);
            t.setText(cursor.getString(cursor.getColumnIndex(Phones.NAME)));

            t = (TextView) view.findViewById(R.id.txtDisplayName);
            t.setText(cursor.getString(cursor.getColumnIndex(Phones.DISPLAY_NAME)));

            t = (TextView) view.findViewById(R.id.txtPhone);
            t.setText(cursor.getString(cursor.getColumnIndex(Phones.NUMBER)));
        }

        @Override
        public View newView(Context context, Cursor cursor, ViewGroup parent) {
            final View view = mInflater.inflate(R.layout.main, parent, false);
            return view;
        }
    }
}
于 2011-05-23T12:16:44.530 に答える
1

これは、抽象化のレイヤーでよくある問題です。このレイヤーは、使用したい特定の機能、ツール、またはケースを抽象化するものではありません。ただし、この場合、すべての希望が失われるわけではないようです。Android Scripting API はオープンソース プロジェクトのようです。この機能をプロジェクトに提供するパッチを提供してみませんか?

将来、私はそのようなパッチを提供するかもしれませんが、それがあなたにとって重要である場合は、私がする前に同じことをしてください。

于 2011-05-24T13:56:19.063 に答える
0

ContactsContract データ テーブルを参照してください。次のようなクエリを実行します。

    Cursor c = getContentResolver().query(Data.CONTENT_URI,
         new String[] {Data._ID, Phone.NUMBER, Phone.TYPE, Phone.LABEL},
                       Data.RAW_CONTACT_ID + "=?" + " AND "
                       + Data.MIMETYPE + "='" + Phone.CONTENT_ITEM_TYPE + "'",
                       new String[] {String.valueOf(rawContactId)
         }, null)
于 2011-05-23T18:56:23.223 に答える
0

まだ試していない場合は、Contact API を試すことができます: http://developer.android.com/resources/articles/contacts.html

于 2011-05-23T22:03:28.600 に答える