简单拨号器(Android)
生活随笔
收集整理的這篇文章主要介紹了
简单拨号器(Android)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
感受:
1.了解了intent中的action和Uri.
2.了解了向下一個活動傳遞數(shù)據(jù)。
3.了解了內(nèi)容提供器。
4.了解自定義適配器。
4.其實(shí)T9撥號器和簡單計(jì)算器原理一樣。
代碼:
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>();@Overrideprotected 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() {@Overridepublic 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();}}}} View CodeTel:
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;@Overrideprotected 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());//把光標(biāo)定位到最后 btnCall.setOnClickListener(new OnClickListener() {@Overridepublic 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);} } View CodeContact:
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;} } View CodeContact_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;}@Overridepublic 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;}} View Code?
轉(zhuǎn)載于:https://www.cnblogs.com/ZP-Better/p/5185675.html
總結(jié)
以上是生活随笔為你收集整理的简单拨号器(Android)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 解决cocoapods在64位iOS7系
- 下一篇: 57. Android之程序调试LogC