• 获取联系人【自己定义布局文件与主布局文件相连,数据库内容查找并显示】


    一、自己定义布局文件list_item_users.xml

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context="${packageName}.${activityClass}" >
            
            <ImageView
                android:id="@+id/img"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_below="@+id/First"
                android:src="@drawable/ic_launcher" />

            <TextView
                android:id="@+id/name"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignBottom="@+id/img"
                android:layout_toRightOf="@+id/img"
                android:text="name" />

            <TextView
                android:id="@+id/First"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentLeft="true"
                android:layout_alignParentTop="true"
                android:text="First" />
    </RelativeLayout>

    二、主布局文件activity_main.xml中布局一个ListView

    三、数据库读取与内容关联

    public class MainActivity extends Activity {

    private ListView lv_users;
    private SimpleCursorAdapter adapter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    lv_users = (ListView) findViewById(R.id.lv_users);

    initData();
    }

    private void initData() {

    ContentResolver resolver =getContentResolver();
    //Cursor c 是定义的一个指标。获取数据库中的内容 query(表地址,new String[]{要获取的列的名称},,。)
    Cursor c = resolver.query(ContactsContract.RawContacts.CONTENT_URI,
    new String[] { "_id", ContactsContract.Contacts.DISPLAY_NAME, "phonebook_label" },
    null, null, null);
    //adapter适配器 是指向自己定义的布局文件。(上下文,自己定义布局文件名称。new String[]{要布置的内容},new int[]{内容放的地方})
    adapter = new SimpleCursorAdapter(this, R.layout.list_item_users, c,
    new String[] { ContactsContract.Contacts.DISPLAY_NAME, "phonebook_label" }, new int[] {
    R.id.name,R.id.First},
    CursorAdapter.FLAG_REGISTER_CONTENT_OBSERVER);
    //将适配器(也能够理解为自己定义的布局文件)加到主布局文件上
    lv_users.setAdapter(adapter);
    }
    }

    在AndroidManifest.xml要注意加入权限: 

      <instrumentation android:name="android.test.InstrumentationTestRunner" android:targetPackage="com.example.readcontactsdemo"></instrumentation>
        <uses-permission android:name="android.permission.READ_CONTACTS"/>
        <uses-permission android:name="android.permission.WRITE_CONTACTS"/>


    android:minSdkVersion="11" 由8改为11

  • 相关阅读:
    使用wget -i下载多个文件
    linux安装LNMP的资源
    mysql优化
    npm
    文件上传
    box-shadow
    进程和线程
    String
    JavaScript 目录
    replace
  • 原文地址:https://www.cnblogs.com/mengfanrong/p/5146213.html
Copyright © 2020-2023  润新知