您的位置:首页 > 移动开发 > Android开发

android通讯录:拨打电话和发短信

2015-01-30 22:44 260 查看
打电话效果图:



发短信效果图:



其中要注意的是拨打电话的权限和注册还有短信的权限

代码如下:

1)MainActivity

import android.net.Uri;

import android.os.Bundle;

import android.app.Activity;

import android.content.Intent;

import android.view.Menu;

import android.view.View;

import android.view.ViewGroup;

import android.widget.AdapterView;

import android.widget.AdapterView.OnItemClickListener;

import android.widget.AdapterView.OnItemLongClickListener;

import android.widget.BaseAdapter;

import android.widget.ListView;

import android.widget.TextView;

public class MainActivity extends Activity {

public static final String TAG = "MainActivity";

private String [] names=new String[]{联系人姓名"};

private String [] phones=new String[]{电话号码};

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

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

MyAdapter adapter =new MyAdapter();

lv.setAdapter(adapter);

//拨打电话

lv.setOnItemClickListener(new OnItemClickListener() {

@Override

public void onItemClick(AdapterView<?> parent, View view,

int position, long id) {

//添加意图

Intent intent = new Intent();

//添加动作

intent.setAction(intent.ACTION_CALL);

//添加数据

intent.setData(Uri.parse("tel:"+phones[position]));

startActivity(intent);

}

});

lv.setOnItemLongClickListener(new OnItemLongClickListener() {

@Override

public boolean onItemLongClick(AdapterView<?> parent, View view,

int position, long id) {

Intent i=new Intent(getApplicationContext(), SmsActivity.class);

i.putExtra("number", phones[position]);

startActivity(i);

return true;

}

});

}

private class MyAdapter extends BaseAdapter{

///item的条目

@Override

public int getCount() {

// TODO Auto-generated method stub

return names.length;

}

@Override

public Object getItem(int position) {

// TODO Auto-generated method stub

return null;

}

@Override

public long getItemId(int position) {

// TODO Auto-generated method stub

return 0;

}

//item显示什么?

@Override

public View getView(int position, View convertView, ViewGroup parent) {

View view;

/*//没有缓存

view = View.inflate(getApplicationContext(),R.layout.lv_item, null);

TextView tv_name = (TextView) view.findViewById(R.id.tv_name);

TextView tv_phone = (TextView) view.findViewById(R.id.tv_phone);

tv_name.setText(names[position]);

tv_phone.setText(phones[position]);

System.out.println("position"+position+convertView);*/

ViewHolder holder=new ViewHolder();

if(convertView==null){

view = View.inflate(getApplicationContext(),R.layout.lv_item, null);

view.setTag(holder);

}else{

view=convertView;

holder=(ViewHolder) view.getTag();

}

holder.tv_name=(TextView) view.findViewById(R.id.tv_name);

holder.tv_phone=(TextView) view.findViewById(R.id.tv_phone);

holder.tv_name.setText(names[position]);

holder.tv_phone.setText(phones[position]);

System.out.println("position"+position+convertView);

return view;

}

}

private static class ViewHolder{

TextView tv_name;

TextView tv_phone;

}

@Override

public boolean onCreateOptionsMenu(Menu menu) {

// Inflate the menu; this adds items to the action bar if it is present.

getMenuInflater().inflate(R.menu.main, menu);

return true;

}

}

2)SmsActivity

package com.eduask.demo1;

import android.app.Activity;

import android.os.Bundle;

import android.telephony.SmsManager;

import android.view.View;

import android.widget.EditText;

import android.widget.TextView;

import android.widget.Toast;

public class SmsActivity extends Activity {

private TextView tv_number;

private EditText et_content;

private String number;

@Override

protected void onCreate(Bundle savedInstanceState) {

// TODO Auto-generated method stub

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_sms);

tv_number = (TextView) findViewById(R.id.tv_number);

et_content = (EditText) findViewById(R.id.et_content);

number = getIntent().getStringExtra("number");

tv_number.setText(number);

}

public void send(View v){

String text = et_content.getText().toString().trim();

//获取短信管理器

SmsManager sm=SmsManager.getDefault();

sm.sendTextMessage(number, null, text, null, null);

Toast.makeText(getApplicationContext(), "发送成功!", 200).show();

}

}

3)lv_item.xml

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

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

android:layout_width="match_parent"

android:layout_height="40dip" >

<ImageView

android:padding="5dip"

android:id="@+id/iv_image"

android:layout_height="wrap_content"

android:layout_width="wrap_content"

android:src="@drawable/ez1"

/>

<TextView

android:padding="5dip"

android:layout_marginLeft="10dip"

android:layout_toRightOf="@+id/iv_image"

android:id="@+id/tv_name"

android:layout_height="wrap_content"

android:layout_width="80dip"

android:textSize="20sp"

android:textColor="@android:color/black"

/>

<TextView

android:padding="5dip"

android:layout_marginLeft="20dip"

android:layout_toRightOf="@+id/tv_name"

android:textSize="20sp"

android:id="@+id/tv_phone"

android:layout_height="wrap_content"

android:layout_width="wrap_content"

android:textColor="@android:color/black"

/>

</RelativeLayout>

4)activity_sms.xml

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

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

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical" >

<EditText

android:hint="@string/content"

android:id="@+id/et_content"

android:lines="5"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

/>

<LinearLayout

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:orientation="horizontal" >

<TextView

android:id="@+id/tv_number"

android:layout_width="0dip"

android:layout_weight="1"

android:layout_height="wrap_content"

android:text="11111"

/>

<Button

android:id="@+id/bt_send"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="@string/send"

android:onClick="send"

/>

</LinearLayout>

</LinearLayout>

5)activity_main.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" >

<ListView

android:id="@+id/lv"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

>

</ListView>

</RelativeLayout>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: