安卓開發之短信發送器的開發

package com.lidaochen.test;

import android.content.Intent;
import android.os.Bundle;
import android.provider.Telephony;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.telephony.SmsManager;
import android.view.View;
import android.widget.EditText;

import java.util.ArrayList;

public class MainActivity extends AppCompatActivity {
    private EditText et_number;
    private EditText et_content;

    // 當咱們開啓的Activity頁面關閉的時候,就調用下面這個方法
    @Override
    protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
/*        if (requestCode == 1)
        {
            // 表明請求ContactActivity這個頁面的數據
            String phone = data.getStringExtra("phone");
            et_number.setText(phone);
        }
        else if(requestCode == 2)
        {
            // 表明請求SmsTemplateActivity這個頁面的數據
            String smsContent = data.getStringExtra("smsContent");
            et_content.setText(smsContent);
        }*/
        if (resultCode == 10)
        {
            // 說明數據是從ContactActivity頁面返回的
            String phone = data.getStringExtra("phone");
            et_number.setText(phone);
        }
        else if(resultCode == 20)
        {
            // 說明數據是從SmsTemplateActivity頁面返回的
            String smsContent = data.getStringExtra("smsContent");
            et_content.setText(smsContent);
        }
        super.onActivityResult(requestCode, resultCode, data);
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        // 找到EditText控件
        et_number = (EditText)findViewById(R.id.et_number);
        et_content = (EditText)findViewById(R.id.et_content);
    }

    // 點擊按鈕 跳轉到ContactActivity頁面
    public void add(View v) {
        Intent intent = new Intent(this, ContactActivity.class);
        // startActivity(intent);
        // 若是點擊按鈕 開啓了另一個Activity,而且當開啓的這個Activity關閉的時候,我想要這個開啓Activity的數據,用下面的方法開啓Activity
        startActivityForResult(intent, 1);
    }

    // 點擊按鈕 跳轉到SmsTemplateActivity頁面
    public void insertsms(View v)
    {
        Intent intent = new Intent(this, SmsTemplateActivity.class);
        startActivityForResult(intent, 2);
        // startActivity(intent);
    }

    public void send(View v)
    {
        // 獲取發送短信的內容
        String number = et_number.getText().toString().trim();
        String content = et_content.getText().toString().trim();
        // 獲取到SmsManager的實例
        SmsManager smsManager = SmsManager.getDefault();
        ArrayList<String> divideMessage = smsManager.divideMessage(content);
        for (String div : divideMessage)
        {
            /**
             * destinationAddress  發送給誰
             * scAddress  服務中心號碼
             *
             * text 要發送的內容
             */
            smsManager.sendTextMessage(number, null, div, null, null);
        }
    }
}
package com.lidaochen.test;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.BaseAdapter;
import android.widget.ListView;
import android.widget.TextView;

import java.util.ArrayList;
import java.util.List;

public class ContactActivity extends AppCompatActivity {
    private List<Person> lists;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_contact);
        // 找到ListView控件
        ListView lv = (ListView)findViewById(R.id.lv);
        // 準備ListView要顯示的數據,這裏模擬點假的數據
        lists = new ArrayList<Person>();
        for (int i = 0; i < 20; i++)
        {
            Person p = new Person();
            p.setName("張三" + i);
            p.setPhone("1100" + i);
            lists.add(p);
        }
        // 展現數據
        lv.setAdapter(new MyAdaper());
        // 給ListView設置點擊事件
        lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                // 獲取我點中的條目的數據
                String phone = lists.get(position).getPhone();
                // 把數據返回給調用者
                Intent intent = new Intent();
                intent.putExtra("phone", phone);
                // 把結果返回給調用者
                setResult(10, intent);
                // 關閉當前頁面
                finish();
            }
        });
    }

    private class MyAdaper extends BaseAdapter {
        @Override
        public int getCount() {
            return lists.size();
        }

        @Override
        public Object getItem(int position) {
            return null;
        }

        @Override
        public long getItemId(int position) {
            return 0;
        }

        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            View view;
            if (convertView == null)
            {
                view = View.inflate(getApplicationContext(), R.layout.contact_item, null);
            }
            else
            {
                view = convertView;
            }
            // 找到咱們在item中定義的控件,用來顯示數據
            TextView tv_name = (TextView)view.findViewById(R.id.tv_name);
            TextView tv_phone = (TextView)view.findViewById(R.id.tv_phone);
            // 展現數據
            tv_name.setText(lists.get(position).getName());
            tv_phone.setText(lists.get(position).getPhone());
            return view;
        }
    }
}
package com.lidaochen.test;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;

public class SmsTemplateActivity extends AppCompatActivity {
    String[] objects = {"我在吃飯,請稍後聯繫","我在開會,請稍後聯繫","我在上課,請稍後聯繫","我在打代碼,請稍後聯繫","我在約會,請稍後聯繫"};

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_sms_template);
        // 找到ListView控件
        ListView lv = (ListView)findViewById(R.id.lv);
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.smstemplate_item, objects);
        // 顯示數據
        lv.setAdapter(adapter);
        // 設置ListView的條目點擊事件
        lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                // 取出點擊條目的數據
                String smsContent = objects[position];
                // 把smsContent返回調用者
                Intent intent = new Intent();
                intent.putExtra("smsContent", smsContent);
                setResult(20, intent);
                // 關閉頁面
                finish();
            }
        });
    }
}

smstemplate_item.xmljava

<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/textView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="TextView"
    android:textColor="#00ff5d"
    android:textAppearance="?android:attr/textAppearanceLarge" />
相關文章
相關標籤/搜索