`
80demon
  • 浏览: 77838 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Android开发获取联系人到ListView中

 
阅读更多

 参考代码:

  import android.app.Activity;
  import android.app.PendingIntent;
  import android.content.ContentUris;
  import android.content.Intent;
  import android.database.Cursor;
  import android.database.CursorWrapper;
  import android.graphics.Color;
  import android.net.Uri;
  import android.os.Bundle;
  import android.provider.Contacts.People;
  import android.telephony.PhoneNumberUtils;
  import android.telephony.gsm.SmsManager;
  import android.util.Log;
  import android.view.View;
  import android.widget.AdapterView;
  import android.widget.LinearLayout;
  import android.widget.ListAdapter;
  import android.widget.ListView;
  import android.widget.SimpleCursorAdapter;
  import android.widget.Toast;

  public class App extends Activity {
  private static final String TAG="App";
  ListView listView;
  ListAdapter adapter; //声明一个适配器名称
   /** Called when the activity is first created. */
   @Override
   public void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
   // setContentView(R.layout.main);
   LinearLayout linearLayout=new LinearLayout(this);//实例化linearLayout,获得其对象
   linearLayout.setOrientation(LinearLayout.VERTICAL);//设置布局方式,这里面是垂直分布
   linearLayout.setBackgroundColor(Color.BLACK);//设置背景颜色
   LinearLayout.LayoutParams param =
   new LinearLayout.LayoutParams

  (LinearLayout.LayoutParams.FILL_PARENT,LinearLayout.LayoutParams.WRAP_CONTENT);//配置layout的长和宽 链接显示LayoutParams的用法

   listView=new ListView(this);
   listView.setBackgroundColor(Color.BLACK);

   linearLayout.addView(listView,param);//动态添加View

   this.setContentView(linearLayout);

   //从数据库获取联系人姓名和电话号码
   Cursor cur=this.getContentResolver().query(People.CONTENT_URI,null, null,null,null);
   adapter=new SimpleCursorAdapter(this,android.R.layout.simple_list_item_2,cur,new String[]{People.NAME,People.NUMBER},new int[]{android.R.id.text1,android.R.id.text2});
   //SimpleCursorAdapter(Context context, int layout, Cursor c, String[] from, int[] to) 构造函数参数
this.startManagingCursor(cur);
  listView.setAdapter(adapter);
  //listView.setEmptyView(findViewById(R.id.empty));

  listView.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener(){
   public void onItemSelected(AdapterView<?> arg0, View arg1,
   int arg2, long arg3) {
   // TODO Auto-generated method stub
   //openToast("滚动到:"+arg0.getSelectedItemId());
   //短信发送
   // PendingIntent pi = PendingIntent.getActivity(App.this,0,new Intent

  (App.this,App.class),0);
   // SmsManager sms = SmsManager.getDefault();
   // sms.sendTextMessage("5554", null, "message", pi, null);
   }
   public void onNothingSelected(AdapterView<?> arg0) {
   // TODO Auto-generated method stub

   }

   });
   listView.setOnItemClickListener(new AdapterView.OnItemClickListener(){
   public void onItemClick(AdapterView<?> arg0, View arg1, int position,
   long arg3) {
   // TODO Auto-generated method stub
  // String[] names=((CursorWrapper)listView.getItemAtPosition(position)).getColumnNames

  ();
   //从指针的封装类中获得选中项的电话号码并拨号
  CursorWrapper wrapper=(CursorWrapper)listView.getItemAtPosition(position);//返回值是Object类需要向下转型成CursorWrapper类型
   int columnIndex=wrapper.getColumnIndex(People.NUMBER);//返回从0开始的索引,如果列名不存在将返回-1
   if(!wrapper.isNull(columnIndex)){
   String number=wrapper.getString(columnIndex);
   Log.d(TAG,"number="+number);
  // //判断电话号码的有效性
   if(PhoneNumberUtils.isGlobalPhoneNumber(number)){
   Intent intent = new Intent(Intent.ACTION_DIAL,Uri.parse("tel://"+ number));
   startActivity(intent);
   }
   }
   }
   });
   }
   private void openToast(String str){
   Toast.makeText(this,str,Toast.LENGTH_SHORT).show();
   }
  }

分享到:
评论

相关推荐

    android多个联系人保存到通讯录

    在Android开发中,将多个联系人保存到通讯录是一个常见的需求。这通常涉及到对系统联系人API的使用,包括读取、创建和更新联系人信息。以下是对这一主题的详细阐述: 1. **Android权限管理**: 在Android中,访问...

    Android ListView快速筛选联系人

    在Android开发中,ListView是展示大量数据常用的组件之一,它能高效地管理视图复用,使得滚动流畅。本主题“Android ListView快速筛选联系人”主要涉及如何利用ListView实现高效的联系人筛选功能,同时结合搜索...

    android listview仿照微信联系人字母排序

    在Android开发中,ListView是一种常用的组件,用于展示大量的数据列表。在"android listview仿照微信联系人字母排序"这个项目中,我们将实现一个类似微信的联系人列表,用户可以通过字母快速定位并搜索联系人。这个...

    android中listview多选demo

    在Android的ListView中实现多选,通常涉及到以下几个关键知识点: 1. **CheckedTextView**:这是Android提供的一个内置视图,它继承自TextView,并增加了复选框的功能。在ListView的每个列表项中使用...

    Android利用listview浏览新闻

    在Android开发中,ListView是一种非常常见且重要的组件,它用于展示大量的数据列表,例如新闻、联系人、邮件等。在本教程中,我们将深入探讨如何利用ListView来浏览新闻。ListView的优势在于它可以动态加载数据,...

    Android 使用ListView的A-Z字母排序功能实现联系人模块

    这会触发适配器内部的过滤逻辑,将符合条件的联系人显示在ListView中。 在适配器的`filter()`方法中,我们首先备份原始数据,然后遍历所有联系人,检查姓名是否包含输入的关键词(或以关键词的拼音开头)。如果是,...

    Android Studio 获取手机联系人项目main文件

    对于获取联系人,我们需要`READ_CONTACTS`权限,如果要进行修改或删除操作,则还需要`WRITE_CONTACTS`权限: ```xml &lt;uses-permission android:name="android.permission.READ_CONTACTS" /&gt; &lt;uses-permission ...

    listview 实现联系人字母排序

    在Android开发中,ListView是一种常用的UI组件,常用于展示大量数据列表。在实现类似通讯录的应用时,为了方便用户快速定位联系人,通常会采用字母排序,并在侧边显示一个可滑动的字母索引栏,这个功能被称为“快速...

    android listview 详解 开发指南

    在Android开发中,ListView是一个非常重要的组件,它用于展示大量数据的列表形式,通常用于创建如联系人列表、消息列表等界面。本篇文章将详细解析ListView的使用,并提供一个简单的ListView实现示例。 首先,我们...

    Android获取联系人

    在Android系统中,获取联系人信息是常见的功能需求,尤其对于社交类或通讯类应用来说,这是一项必不可少的功能。为了实现这一目标,开发者需要理解Android的权限管理、ContentResolver和ContactsContract类。以下是...

    android listview联系人管理

    在Android开发中,ListView是一种常用的UI组件,常用于展示大量数据列表,如联系人管理界面。本实例将探讨如何在Android应用中实现一个基于ListView的联系人管理系统,并涉及两个Activity间的数据传递。以下是对相关...

    Android项目-读取联系人结合listview.zip

    在Android开发中,读取联系人并将其显示在ListView中是一项常见的需求,这通常涉及到用户界面(UI)设计、数据获取以及数据绑定等技术。在这个"Android项目-读取联系人结合listview.zip"中,我们可以学习到如何实现...

    Android代码-联系人快速索引源码.zip

    在Android开发中,联系人快速索引是一项常见且实用的功能,它使得用户能够迅速找到大量联系人中的特定条目。这个“联系人快速索引源码.zip”文件包含了一个实现这一功能的源代码示例。下面我们将深入探讨该功能的...

    Android中Listview分页显示

    在Android开发中,ListView是一种常用的组件,用于展示大量的数据列表,比如联系人、消息等。然而,如果一次性加载所有数据,不仅会消耗大量内存,也可能导致应用运行缓慢。因此,通常采用分页加载(Pagination)的...

    安卓listview相关相关-具有系统通讯录的功能将手机系统联系人以listview显示点击进入查看联系人信息拨打电话以及编辑联系人.rar

    - 由于涉及到读取和修改联系人信息,项目中必须在AndroidManifest.xml中声明`READ_CONTACTS`和`WRITE_CONTACTS`权限。 这个示例项目涵盖了Android开发中的多个关键点,对于学习如何使用ListView、处理系统通讯录...

    Android ListView实例代码

    在Android开发中,ListView是一个非常重要的组件,它用于展示大量数据列表,通常用于实现像联系人列表、消息列表等常见的用户界面。ListView通过高效的滚动性能和可复用的视图来优化内存使用,使得在有限的内存条件...

    Android实现的ListView-ListViewAdapter(新闻列表事例)

    在Android开发中,ListView是一个非常重要的组件,常用于展示大量数据列表,如新闻、联系人、邮件等。在这个“Android实现的ListView-ListViewAdapter(新闻列表事例)”中,我们将探讨如何利用ListView和ListView...

    基于android studio的读取联系人并可点击拨打电话

    接下来,遍历Cursor获取联系人信息,并将其显示在ListView或者RecyclerView等组件上。例如: ```java if (cursor != null) { while (cursor.moveToNext()) { String name = cursor.getString(cursor....

    Android viewpager+listview例子

    在Android开发中,`ViewPager`和`ListView`是两种非常重要的组件,它们分别用于实现页面滑动和列表显示。在本示例中,我们将探讨如何将`ViewPager`和`ListView`结合起来,创建一个动态滚屏并展示数据的交互式应用。 ...

    Android 获取手机联系人并按字母排序,且可根据字母右侧A~Z检索-IT计算机-毕业设计.zip

    由于获取联系人数据可能耗时,为了保持界面流畅,通常会在后台线程(如AsyncTask)中执行查询操作,然后在主线程更新UI。 9. **适配不同Android版本**: 考虑到Android版本的碎片化,代码需要兼容不同的API级别,...

Global site tag (gtag.js) - Google Analytics