首页>
技术资讯>
详情

Android 实现电话查询

2016-05-13 来源:佚名 阅读量: 0
关键词: 手机开发

    用FIle Explore 我们可以清楚的看见data-->data目录下的通讯录的数据库的所有信息

    但是每次点击以后listview item的值不能清空,如有可行的方法,请交流一下

  导出这个数据库我们就可以看所有通讯录的信息

    view plainprint?

    < /pre>import java.util.ArrayList;import java.util.List;import android.app.Activity;import android.content.ContentResolver;import android.database.Cursor;import android.os.Bundle;import android.provider.ContactsContract.CommonDataKinds.Phone;import android.provider.ContactsContract.Contacts.Photo;import android.util.Log;import android.view.View;import android.view.View.OnClickListener;import android.widget.ArrayAdapter;import android.widget.Button;import android.widget.EditText;import android.widget.ListView;import android.widget.Spinner;import android.widget.Toast;public class ContentProvide_TestActivity extends Activity { private Spinner spinner; private EditText editText; private Button button; private ListView listView; List< String> list; ArrayAdapter< String> adapter; private static final String[] ContactInfo=new String[]{Phone.DISPLAY_NAME,Phone.NUMBER,Photo._ID,Phone.TIMES_CONTACTED,Phone.LAST_TIME_CONTACTED}; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); spinner=(Spinner) findViewById(R.id.spinner1); editText=(EditText) findViewById(R.id.editText1); button=(Button) findViewById(R.id.insert); listView=(ListView) findViewById(R.id.listView1); list=new ArrayList< String>(); adapter=new ArrayAdapter< String>(getApplicationContext(), android.R.layout.simple_spinner_dropdown_item); adapter.add("姓名");//Position=0 adapter.add(" 手机号码");//Position=1 adapter.add("通话次数"); //Position=2

    spinner.setAdapter(adapter); button.setOnClickListener(new ButtonLIstener()); } class ButtonLIstener implements OnClickListener{ @Override public void onClick(View v) { // TODO Auto- generated method stub // listView.removeAllViewsInLayout(); Log.i("URL---->", Phone.CONTENT_URI+" "); //content:// com.android.contacts/data /phones ContentResolver contentResolver=ContentProvide_TestActivity.this.getContentResolver(); int Selete=spinner.getSelectedItemPosition(); String editString=editText.getText()。toString(); if (editString.isEmpty()) { Toast.makeText(getApplicationContext(), " 请输入要查询的内容", Toast.LENGTH_LONG)。show(); return ; } String selection=null; switch (Selete) { case 0: selection="DISPLAY_NAME=?"; Log.i("------& gt;", selection+editString); break; case 1: //selection="NUMBER=?"; 报错这一行,那是因为我们查询的表是contacts表 和 raw_contacts表 以及 data表,这三个表没有NUMBER这个字段, selection="DATA1=?";//手机号码是存放在数据库 data表中的data1中,data4中也有, Log.i("------>", selection+editString); break; case 2: selection="TIMES_CONTACTED=?"; break; default: break; } Cursor cursor=contentResolver.query(Phone.CONTENT_URI, ContactInfo, selection, new String [] {editString}, null); System.out.println("-------------"+cursor==null); if (cursor!=null) { if (cursor.moveToNext()==false) { Toast.makeText(getApplicationContext(), " 没有查询到你想要的数据", Toast.LENGTH_LONG)。show(); } while(cursor.moveToNext()) { String PhoneName=cursor.getString(0); Log.i(" 名字--------->",PhoneName ); list.add(" 姓 名:"+PhoneName); String PhoneNumber=cursor.getString(1); Log.i(" 电话号码------>", PhoneNumber); list.add("电话号码:"+PhoneNumber); String ContantS=cursor.getString(3); Log.i(" 通话次数----->", ContantS); list.add("通话次数:"+ContantS); String LastContants=cursor.getString(3); Log.i(" 最后通话----->", LastContants); list.add("最后通话:"+LastContants); } ArrayAdapter< String> adapter2=new ArrayAdapter& lt;String>

    (getApplicationContext(), android.R.layout.simple_list_item_1, list); listView.setAdapter(adapter2); } /* else if(cursor==null) { } */ } } }< p> < /p>< p>< span style="font-size:18px;color:#ff0000;">布局文件& lt;/span>< /p>< p>< /p>< pre class="html" name="code">< ?xml version="1.0" encoding="utf-8"?>

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

    android:orientation="vertical"

  

热门推荐 查看更多