安卓实现打电话与发短信通信录

界面代码

activity_main.xml

<LinearLayout 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"
    android:orientation="vertical" >

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="45dp"
        android:background="#0E6DB0"
        android:gravity="center"
        android:orientation="vertical"
        >


    </LinearLayout>

    <ListView
        android:id="@+id/listview"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"></ListView>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="55dp"
        android:background="#0E6DB0"
        android:orientation="horizontal" >

        <LinearLayout
            android:id="@+id/llChat"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:gravity="center"
            android:orientation="vertical" >

            <ImageButton
                android:scaleType="centerInside"
                android:id="@+id/btn_phone"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:background="#ffffff"
                android:src="@drawable/phone" />


        </LinearLayout>



        <LinearLayout
            android:id="@+id/llContacts"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:gravity="center"
            android:orientation="vertical" >

            <ImageButton
                android:scaleType="centerInside"
                android:id="@+id/btn_message"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:background="#ffffff"
                android:src="@drawable/message" />


        </LinearLayout>


    </LinearLayout>

</LinearLayout>

activity_message.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#ccffcc">



    <EditText
        android:layout_marginTop="100dp"
        android:id="@+id/et_message"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:ems="10"
        android:inputType="textPersonName"
        android:text="请输入短信" />

    <EditText

        android:id="@+id/et_phoneNumber"
        android:layout_marginTop="40dp"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:ems="10"
        android:inputType="textPersonName"
        android:text="请输入电话" />

    <ImageButton
        android:scaleType="centerInside"
        android:id="@+id/ImgButton"
        android:layout_width="101dp"
        android:layout_height="62dp"
        android:layout_gravity="center_horizontal"
        android:layout_marginTop="300dp"
        app:srcCompat="@drawable/message" />
</LinearLayout>

activity_phone

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#ccffcc">

    <ImageView
        android:id="@+id/imageView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        tools:srcCompat="@tools:sample/avatars"
        android:layout_marginTop="50dp"
        />

    <EditText
        android:id="@+id/et_phone"
        android:layout_marginTop="50dp"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:ems="10"
        android:inputType="textPersonName"
        android:text="phone number" />

    <ImageButton
        android:scaleType="centerInside"
        android:id="@+id/Img_call"
        android:layout_width="100dp"
        android:layout_marginTop="250dp"
        android:layout_height="100dp"
        android:layout_gravity="center_horizontal"
        app:srcCompat="@drawable/phone"
        android:background="#ccffcc"/>

</LinearLayout>

list_item.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center_vertical">

    <ImageView
        android:id="@+id/item_image"
        android:layout_width="48dp"
        android:layout_height="48dp"
        android:layout_margin="8dp"
        app:srcCompat="@drawable/home"
        />

    <TextView
        android:id="@+id/item_tv"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="18sp"
        android:text="aisfajbfjkabfadsasd" />
</LinearLayout>

menu_main.xml


<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    tools:context="com.example.contextmenu.MainActivity" >

    <item
        android:id="@+id/select_phone"
        android:orderInCategory="100"
        app:showAsAction="never"
        android:title="打电话"/>
    <item
        android:id="@+id/select_message"
        android:orderInCategory="100"
        app:showAsAction="never"
        android:title="发短信"/>


</menu>

java 代码

MainActivity

package com.example.zzjphone;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.util.Log;
import android.view.ContextMenu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.view.Window;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

    private String names[] = {"大大怪","小小怪","打小怪"};//假数据
    private int[] icons={R.drawable.one, R.drawable.two,R.drawable.three};
    private ImageButton btn_phone;
    private ImageButton btn_message;
    private ListView listView;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);
        getSupportActionBar().hide();
        //Listview
        //书上的
        /*listView = (ListView) findViewById(R.id.listview);//在视图中找到ListView
        MyBaseAdapter mAdapter=new MyBaseAdapter();
        listView.setAdapter(mAdapter);*/
        //原来的
        listView = (ListView) findViewById(R.id.listview);//在视图中找到ListView
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,names);//新建并配置ArrayAapeter
        listView.setAdapter(adapter);
        registerForContextMenu(listView);//给listview注册上下文菜单
        //跳转电话
        btn_phone=(ImageButton)findViewById(R.id.btn_phone);
        btn_phone.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent =new Intent(MainActivity.this,activity_phone.class);
                startActivity(intent);
            }
        });
        //跳转消息
        btn_message=(ImageButton)findViewById(R.id.btn_message);
        btn_message.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent =new Intent(MainActivity.this,activity_message.class);
                startActivity(intent);
            }
        });
    }
    //构造适配器

    /*class MyBaseAdapter extends BaseAdapter {
        @Override
        public int getCount(){
            return names.length;
        }
        @Override
        public Object getItem(int position)
        {
            return names[position];
        }
        @Override
        public long getItemId(int position){
            return position;
        }

        @Override
        public View getView(int position, View convertView, ViewGroup parent){
            //将list_item.XML文件找出来并转化为View对象
            View view =View.inflate(MainActivity.this,R.layout.list_item,null);
            TextView mTextView=(TextView)findViewById(R.id.item_tv);
            mTextView.setText(names[position]);
            ImageView imageView=(ImageView)findViewById(R.id.item_image);
            imageView.setBackgroundResource(icons[position]);
            return view;
        }
    }

*/


    @Override
    public void onCreateContextMenu(ContextMenu menu, View v,
                                    ContextMenu.ContextMenuInfo menuInfo) {
        // 加载xml中的上下文菜单
        super.onCreateContextMenu(menu, v, menuInfo);
        MenuInflater menuInflater = getMenuInflater();
        menuInflater.inflate(R.menu.menu_main, menu);
    }
    @Override
    public boolean onContextItemSelected(MenuItem item) {
        switch (item.getItemId()) {
            case R.id.select_phone:
                {
                    Intent intent = new Intent(Intent.ACTION_DIAL);
                    Uri data = Uri.parse("tel:" + "13078260865");
                    intent.setData(data);
                    startActivity(intent);
                    Toast.makeText(MainActivity.this, "拨打成功", Toast.LENGTH_SHORT).show();
            }
                break;
            case R.id.select_message: {
                Intent intent =new Intent(MainActivity.this,activity_message.class);
                startActivity(intent);
                Toast.makeText(MainActivity.this, "over", Toast.LENGTH_SHORT).show();
            }
                break;

            default:
                break;
        }
        return super.onContextItemSelected(item);
    }



}

activity_message

package com.example.zzjphone;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.telephony.SmsManager;
import android.view.View;
import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.Toast;

import java.util.List;

public class activity_message extends AppCompatActivity {
    private EditText et_message;
    private EditText et_phoneNumber;
    private ImageButton ImgButton;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_message);
        getSupportActionBar().hide();
        //?

        et_message=(EditText) findViewById(R.id.et_message);
        et_phoneNumber=(EditText)findViewById(R.id.et_phoneNumber);
        ImgButton=(ImageButton)findViewById(R.id.ImgButton);
        //点击发送短信
        Toast.makeText(activity_message.this, "信息已发送", Toast.LENGTH_SHORT);
        ImgButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                sendSMS(et_phoneNumber.getText().toString(),et_message.getText().toString());
            }
        });
    }
    public void sendSMS(String phoneNumber,String message){
        //获取短信管理器
        SmsManager smsManager = SmsManager.getDefault();
       // android.telephony.SmsManager smsManager = android.telephony.SmsManager.getDefault();
        //拆分短信内容(手机短信长度限制)
        List<String> divideContents = smsManager.divideMessage(message);
        for (String text : divideContents) {
            smsManager.sendTextMessage(phoneNumber, null, text, null, null);
        }

    }
}

activity_phone

package com.example.zzjphone;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.ImageButton;

public class activity_phone extends AppCompatActivity {
    private EditText phoneNum;
    private ImageButton btn_call;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_phone);
        getSupportActionBar().hide();
        phoneNum=(EditText) findViewById(R.id.et_phone);
        btn_call=(ImageButton)findViewById(R.id.Img_call) ;
        btn_call.setOnClickListener(new View.OnClickListener(){
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(Intent.ACTION_DIAL);
                Uri data = Uri.parse("tel:" + phoneNum.getText());
                intent.setData(data);
                startActivity(intent);
            }
        });

    }
}

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
源码是经过本地编译可运行的,下载完成之后配置相应环境即可使用。源码功能都是经过老师肯定的,都能满足要求,有需要放心下载即可。源码是经过本地编译可运行的,下载完成之后配置相应环境即可使用。源码功能都是经过老师肯定的,都能满足要求,有需要放心下载即可。源码是经过本地编译可运行的,下载完成之后配置相应环境即可使用。源码功能都是经过老师肯定的,都能满足要求,有需要放心下载即可。源码是经过本地编译可运行的,下载完成之后配置相应环境即可使用。源码功能都是经过老师肯定的,都能满足要求,有需要放心下载即可。源码是经过本地编译可运行的,下载完成之后配置相应环境即可使用。源码功能都是经过老师肯定的,都能满足要求,有需要放心下载即可。源码是经过本地编译可运行的,下载完成之后配置相应环境即可使用。源码功能都是经过老师肯定的,都能满足要求,有需要放心下载即可。源码是经过本地编译可运行的,下载完成之后配置相应环境即可使用。源码功能都是经过老师肯定的,都能满足要求,有需要放心下载即可。源码是经过本地编译可运行的,下载完成之后配置相应环境即可使用。源码功能都是经过老师肯定的,都能满足要求,有需要放心下载即可。源码是经

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值