简单拨号器(Android)

感受:

1.了解了intent中的action和Uri.

2.了解了向下一个活动传递数据。

3.了解了内容提供器。

4.了解自定义适配器。

4.其实T9拨号器和简单计算器原理一样。

代码:

MainActivity:

package com.example.contactstest;

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

import android.os.Bundle;
import android.provider.ContactsContract;
import android.util.Log;
import android.view.View;
import android.view.Window;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;
import android.widget.AdapterView.OnItemClickListener;
import android.app.Activity;
import android.app.DownloadManager.Request;
import android.content.Intent;
import android.database.Cursor;

public class MainActivity extends Activity {

    ListView contactsView;

    List<Contact> contactsList = new ArrayList<Contact>();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.activity_main);
        contactsView = (ListView) findViewById(R.id.contacts_view);
        Contact_item adapter = new Contact_item(this, R.layout.item, contactsList);
        contactsView.setAdapter(adapter);
        readContacts();
        contactsView.setOnItemClickListener(new OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view,
                    int position, long id) {
                Contact fruit = contactsList.get(position);
                String data = fruit.getNumber();
                Intent i = new Intent(MainActivity.this,Tel.class);
                i.putExtra("Tel_number", data);
                startActivity(i);
            }
        });

    }

    private void readContacts() {
        Cursor cursor = null;
        try {
            cursor = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
                    null, null, null, null);
            while (cursor.moveToNext()) {
             String displayName = cursor.getString(cursor
                        .getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));
                String number = cursor.getString(cursor
                        .getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
                Log.d("MainActivity", "name is " + displayName);
                Contact a = new Contact(displayName,number);
                contactsList.add(a);
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if (cursor != null) {
                cursor.close();
            }
        }
    }

}

Tel:

package com.example.contactstest;

import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.Window;
import android.widget.Button;
import android.widget.EditText;

public class Tel extends Activity{

    String number;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.tel);

        Intent intent = getIntent();
        number = intent.getStringExtra("Tel_number");
        Button btnCall = (Button) findViewById(R.id.btn_call);
        EditText etNumber = (EditText)findViewById(R.id.number);
        etNumber.setText(number);
        etNumber.setSelection(etNumber.getText().length());//把光标定位到最后

        btnCall.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                //System.out.println("MainUI2 拨打电话.");
                //Log.d("Tel", number);
                call();
            }
        });

    }

    private void call(){

        //Log.d("MainUI", "拨打电话");

        Intent intent = new Intent();
        intent.setAction(Intent.ACTION_CALL);
        intent.setData(Uri.parse("tel:"+number));
        startActivity(intent);

    }
}

Contact:

package com.example.contactstest;

public class Contact {

    private String name;

    private String number;

    public Contact(String name, String number) {
        this.name = name;
        this.number = number;
    }

    public String getName() {
        return name;
    }

    public String getNumber() {
        return number;
    }
}

Contact_item:

package com.example.contactstest;

import java.util.List;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.TextView;

public class Contact_item extends ArrayAdapter<Contact>{

        private int resourceId;

        public Contact_item(Context context, int textViewResourceId,
                List<Contact> objects) {
            super(context, textViewResourceId, objects);
            resourceId = textViewResourceId;
        }

        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            Contact fruit = getItem(position);
            View view;
            ViewHolder viewHolder;
            if (convertView == null) {
                view = LayoutInflater.from(getContext()).inflate(resourceId, null);
                viewHolder = new ViewHolder();
                viewHolder.fruitNumber = (TextView) view.findViewById(R.id.number);
                viewHolder.fruitName = (TextView) view.findViewById(R.id.name);
                view.setTag(viewHolder);
            } else {
                view = convertView;
                viewHolder = (ViewHolder) view.getTag();
            }
            viewHolder.fruitNumber.setText(fruit.getNumber());
            viewHolder.fruitName.setText(fruit.getName());
            return view;
        }

        class ViewHolder {

            TextView fruitNumber;

            TextView fruitName;

        }

    }

时间: 2024-08-08 09:38:58

简单拨号器(Android)的相关文章

Android学习笔记(1)——电话拨号器

搬运自本人博客:Android学习笔记(1)--电话拨号器 程序的实现过程非常简单,大体分为以下几步: 确定程序的功能,大致确定好UI界面. 通过调整xml文件参数让界面更加美观. 在Activity文件编写代码,完成对应的事件等. 对于电话拨号器,我们最后的界面大致如下: 对应的布局文件如下,采用的是相对布局. ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 <Relative

Android实战--电话拨号器

今天跟着黑马视频建立一个android app--电话拨号器 首先新建一个android项目 activity_main_xml中的代码如下: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_paren

Android开发系列(一):电话拨号器的实现

目标,实现简单的电话拨号功能. 首先,可以看到上边有几个控件,上边有几个文字. 在我们建立好了工程之后,我们首先可以在res目录下的values目录的strings.xml中把这几个文字添加进去,为了更好地实现国际化. <?xml version="1.0" encoding="utf-8"?> <resources> <string name="hello">Hello World, MainActivity

【Android快速入门】目录结构及adb命令【附Android拨号器的实现,自作】

目录结构 src: 存放java代码 gen: 存放自动生成文件的. R.java 存放res文件夹下对应资源的id project.properties: 指定当前工程采用的开发工具包的版本 libs: 当前工程所依赖的jar包. assets: 放置一些程序所需要的媒体文件. bin: 工程的编译目录. 存放一些编译时产生的临时文件和当前工程的.apk文件. res(resources): 资源文件. drawable: 存放程序所用的图片. layout: 存放android的布局文件.

【Android快速入门2】拨号器的实现

拨号器是个很简单的布局,用来做Android的入门最好不过. 本程序给予Android API19编译实现,因此是新版布局.不习惯的请注意. 截图下次我有空补上. 1.Java主程序: public class MainActivity extends ActionBarActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setC

无废话Android之常见adb指令、电话拨号器、点击事件的4种写法、短信发送器、Android 中各种布局(1)

1.Android是什么 手机设备的软件栈,包括一个完整的操作系统.中间件.关键的应用程序,底层是linux内核,安全管理.内存管理.进程管理.电源管理.硬件驱动 2.Dalvik VM 和 JVM 的比较 3.常见adb指令 platform-tools/adb.exe adb.exe : android debug bridge android调试桥 adb devices:列出所以连接的设备 adb kill-server :杀死adb调试桥 adb start-server :启动adb

Android实现电话拨号器和短信发送器

电话拨号器和短信发送器是Android初学者很好的练习项目,今天就找了两个写得很不错的例子学习下 电话拨号器 实现原理:用户输入电话号码,当点击拨打的时候,由监听对象捕获,监听对象通过文本控件获取到用户输入的电话号码,由于系统已经实现了电话拨号功能,所以我们只需要调用这个功能就可以了. 步骤: 1.界面布局 2.编写Activity 3.使用意图过滤器激活电话拨号功能 4.添加电话服务权限(用手机的电话服务,要在清单文件AndroidManifest.xml中添加电话服务权限) 如图所示这三个控

Android生猛上手,先写个拨号器。

并不打算按照四大组件开始系统性专攻,而是立马开始做应用,初步计划刷新手机上的所有常用软件. 鄙人常玩撸啊撸,手机中难免多了些LOL盒子,官方助手,视频app等工具.自始2011年初最为率先在同学们中崛起android智能机的第一个屌丝,999块钱买了一台华为U8500.那个时候同学们还在用诺基亚!那照片拍的哟,贼清晰,而我仅仅是打算为了群发飞信,短信费花不起,我每天还得充当个班长的角色.而我也借着诺基亚超强的像素,记录了我大学里几年的美好时光.自此,用了Android开始,便一路见证了各种流氓a

Android Day01-电话拨号器案例&Android开发流程

电话拨号器开发步骤: 1.在清单文件中添加打电话的权限 <?xml version="1.0"encoding="utf-8"?>       <manifestxmlns:android="http://schemas.android.com/apk/res/android"             package="cn.itcast.action"             android:version