列出联系人的信息

本文介绍了如何在Android应用中通过ContentProvider访问联系人信息,使用SimpleCursorAdapter封装Cursor并展示为ListView。主要内容包括创建布局文件、配置Activity、权限设置以及实现数据与UI的绑定。

 

联系人是一个单独的程序,可以通过ContentProvider访问联系人信息。

  ContenProvider可以将一个应用程序的数据交给外部处理,

  使用SimpleCursorAdapter类可以对Curosr进行封装,并组件显示。

 

 

 

在main.xml中:

 

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout

  xmlns:android="http://schemas.android.com/apk/res/android"

  android:orientation="vertical"

  android:layout_width="fill_parent"

  android:layout_height="fill_parent"

  android:gravity="center_horizontal"

  android:background="#000000">

  <TextView

     android:id="@+id/mainInfo"

     android:layout_width="wrap_content"

     android:layout_height="wrap_content"

     android:textColor="#ffffff"

     android:text="手机联系人列表"/>

  <ListView

     android:id="@+id/contactList"

     android:background="#0066ff"

     android:layout_width="fill_parent"

     android:layout_height="fill_parent"/>

</LinearLayout>

 

 

 

 

 

 

 

新建布局文件contacts.xml:

 

<?xml version="1.0" encoding="utf-8"?>

<TableLayout

  xmlns:android="http://schemas.android.com/apk/res/android"

  android:orientation="vertical"

  android:layout_width="fill_parent"

  android:layout_height="fill_parent"

  android:background="#0066ff">

  <TableRow >

     <TextView

       android:id="@+id/_id"

       android:gravity="center_vertical"

       android:layout_width="wrap_content"

       android:layout_height="30dp"

       android:layout_marginLeft="16dp"

       android:textColor="#ffffff"/>

     <TextView

       android:id="@+id/name"

       android:gravity="center_vertical"

       android:textColor="#ffffff"

       android:layout_width="wrap_content"

       android:layout_height="30dp"

       android:layout_marginLeft="8dp"/>

  </TableRow>

</TableLayout>

 

 

 

 

在主Activity(ContentsDemo.java)中:

 

package com.li.contactsproject;

 

import java.util.ArrayList;

import java.util.HashMap;

import java.util.List;

import java.util.Map;

 

import android.os.Bundle;

import android.provider.ContactsContract;

import android.app.Activity;

import android.database.Cursor;

import android.view.Menu;

import android.view.MenuItem;

import android.widget.ListView;

import android.widget.SimpleAdapter;

import android.support.v4.app.NavUtils;

 

public class ContentsDemo extends Activity {

  private Cursor result = null; //查询返回的结果

  private ListView contactsList = null; //定义ListView组件

  private List<Map<String,Object>> allContacts = null;

  private SimpleAdapter simple = null;

    @Override

    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        super.setContentView(R.layout.main);

        this.contactsList = (ListView)super.findViewById(R.id.contactList);

        this.result = super.getContentResolver().query(ContactsContract

           .Contacts.CONTENT_URI, null, null, null, null);    //查询

        super.startManagingCursor(this.result);   //将结果集交给容器管理

        this.allContacts = new ArrayList<Map<String,Object>>();   //实例化List集合

        for(this.result.moveToFirst();!this.result.isAfterLast();

           this.result.moveToNext()){    //取出结果集中的每一个内容

        Map<String,Object> contact = new HashMap<String, Object>();

        contact.put("_id",this.result.getInt(this.result

             .getColumnIndex(ContactsContract.Contacts._ID)));

        contact.put("name",this.result.getString(this.result

             .getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME)));

        this.allContacts.add(contact);

        this.simple = new SimpleAdapter(this,this.allContacts,

             R.layout.contacts,new String[]{"_id","name"},new int[]{

             R.id._id,R.id.name});

        this.contactsList.setAdapter(this.simple);

       

        }

       

    }

 

}

 

 

 

在AndroidManifest.xml中修改权限:

 

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

    package="com.li.contactsproject"

    android:versionCode="1"

    android:versionName="1.0" >

 

    <uses-sdk

        android:minSdkVersion="8"

        android:targetSdkVersion="15" />

 

    <application

        android:icon="@drawable/ic_launcher"

        android:label="@string/app_name"

        android:theme="@style/AppTheme" >

        <activity

            android:name=".ContentsDemo"

            android:label="@string/title_activity_contents_demo" >

            <intent-filter>

                <action android:name="android.intent.action.MAIN" />

 

                <category android:name="android.intent.category.LAUNCHER" />

            </intent-filter>

        </activity>

    </application>

  <uses-permission android:name="android.permission.READ_CONTACTS"/>

  <uses-permission android:name="android.permission.WRITE_CONTACTS"/>

</manifest>

 

标题基于Python的汽车之家网站舆情分析系统研究AI更换标题第1章引言阐述汽车之家网站舆情分析的研究背景、意义、国内外研究现状、论文方法及创新点。1.1研究背景与意义说明汽车之家网站舆情分析对汽车行业及消费者的重要性。1.2国内外研究现状概述国内外在汽车舆情分析领域的研究进展与成果。1.3论文方法及创新点介绍本文采用的研究方法及相较于前人的创新之处。第2章相关理论总结和评述舆情分析、Python编程及网络爬虫相关理论。2.1舆情分析理论阐述舆情分析的基本概念、流程及关键技术。2.2Python编程基础介绍Python语言特点及其在数据分析中的应用。2.3网络爬虫技术说明网络爬虫的原理及在舆情数据收集中的应用。第3章系统设计详细描述基于Python的汽车之家网站舆情分析系统的设计方案。3.1系统架构设计给出系统的整体架构,包括数据收集、处理、分析及展示模块。3.2数据收集模块设计介绍如何利用网络爬虫技术收集汽车之家网站的舆情数据。3.3数据处理与分析模块设计阐述数据处理流程及舆情分析算法的选择与实现。第4章系统实现与测试介绍系统的实现过程及测试方法,确保系统稳定可靠。4.1系统实现环境列出系统实现所需的软件、硬件环境及开发工具。4.2系统实现过程详细描述系统各模块的实现步骤及代码实现细节。4.3系统测试方法介绍系统测试的方法、测试用例及测试结果分析。第5章研究结果与分析呈现系统运行结果,分析舆情数据,提出见解。5.1舆情数据可视化展示通过图表等形式展示舆情数据的分布、趋势等特征。5.2舆情分析结果解读对舆情分析结果进行解读,提出对汽车行业的见解。5.3对比方法分析将本系统与其他舆情分析系统进行对比,分析优劣。第6章结论与展望总结研究成果,提出未来研究方向。6.1研究结论概括本文的主要研究成果及对汽车之家网站舆情分析的贡献。6.2展望指出系统存在的不足及未来改进方向,展望舆情
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值