上下文菜单(复制号码、复制号码到短信界面、复制号码到拨号盘功能的实现)
来源:互联网 发布:do178b 软件 编辑:程序博客网 时间:2024/05/18 03:36
效果图:
代码实现:
1、main.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" > <ListView android:id="@+id/listview" android:layout_width="fill_parent" android:layout_height="fill_parent" /></LinearLayout>
2、MainActivity
里面包括了读取通话记录中一些表的URI、以及打电话、发短信的SCHEMA,要是忘了的话,可以在可以查一下
但建议还是到android中去查
package com.njupt.contextmenu1;import android.net.Uri;import android.os.Bundle;import android.provider.CallLog.Calls;import android.app.Activity;import android.content.Context;import android.content.Intent;import android.database.Cursor;import android.graphics.Color;import android.text.ClipboardManager;import android.view.ContextMenu;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.view.ViewGroup;import android.view.ContextMenu.ContextMenuInfo;import android.widget.AdapterView.AdapterContextMenuInfo;import android.widget.CursorAdapter;import android.widget.ListView;import android.widget.TextView;public class MainActivity extends Activity {private static final int MENU_DIAL_ID = 0;private static final int MENU_SMS_ID = 1;private static final int MENU_COPY_ID = 2;private MyAdapter adapter;private ListView listview;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main); listview = (ListView) findViewById(R.id.listview);Cursor c = getContentResolver().query(Calls.CONTENT_URI ,new String[]{Calls._ID,Calls.NUMBER}, null,null, null);adapter = new MyAdapter(this,c);listview.setAdapter(adapter);registerForContextMenu(listview);} @Override public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { menu.add(0,MENU_DIAL_ID,0,"复制号码到拨号盘"); menu.add(0,MENU_SMS_ID,0,"发送短信"); menu.add(0,MENU_COPY_ID,0,"复制号码"); super.onCreateContextMenu(menu, v, menuInfo); } @Override public boolean onContextItemSelected(MenuItem item) { AdapterContextMenuInfo acmi = (AdapterContextMenuInfo) item.getMenuInfo(); int position = acmi.position; Cursor cursor = (Cursor) adapter.getItem(position); String number = cursor.getString(cursor.getColumnIndex(Calls.NUMBER)); int id = item.getItemId(); Intent intent = null; switch (id) {case MENU_DIAL_ID:intent = new Intent();intent.setAction(Intent.ACTION_DIAL);intent.setData(Uri.parse("tel:" + number));startActivity(intent);break;case MENU_SMS_ID:intent = new Intent();intent.setAction(Intent.ACTION_SENDTO);intent.setData(Uri.parse("smsto:" + number));startActivity(intent);break;case MENU_COPY_ID:ClipboardManager cm = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE);cm.setText(number);default:break;} return super.onContextItemSelected(item); } private class MyAdapter extends CursorAdapter{ public MyAdapter(Context context , Cursor cursor) { super(context, cursor);} @Override public View newView(Context context, Cursor cursor, ViewGroup parent) { TextView tv = new TextView(context); tv.setTextSize(22); tv.setTextColor(Color.GREEN); return tv; } @Override public void bindView(View view, Context context, Cursor cursor) { String number = cursor.getString(cursor.getColumnIndex(Calls.NUMBER)); TextView tv = (TextView) view; tv.setText(number); } }@Overridepublic 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;}}
3、AndroidManifest.xml
<uses-permission android:name="android.permission.READ_CONTACTS"/>
- 上下文菜单(复制号码、复制号码到短信界面、复制号码到拨号盘功能的实现)
- 号码
- 号码
- 号码!
- 号码
- js 实现复制到剪切板的功能
- 短信中心号码的读取
- 复制到剪切板功能
- 直接跳转到拨号界面并带有号码。
- 接受指定号码的短信,并且不让系统截取到通知用户
- 给右键菜单增加“复制到”和“移动到”功能
- 在信息收件人里输入号码,不要匹配到电话本里的服务号码
- JS实现复制到剪贴板功能
- 纯js实现复制到剪贴板功能
- clipboard: 实现复制到剪贴板功能
- angular指令:实现复制到剪贴板功能
- 纯js实现复制到剪贴板功能
- 短信中心号码
- Objc Class And Metaclass(Objective-C类和原类)
- fedora 18 安装android
- html基本结构图
- 新开通
- linux定时任务,手动执行脚本没有问题,放入定时任务不行
- 上下文菜单(复制号码、复制号码到短信界面、复制号码到拨号盘功能的实现)
- 最近老是做同样的奇怪的梦莫非有不详之兆
- 用TPKeyboardAvoidingScrollView在scrollview中实现自动上滚,避免键盘遮盖住了textfield,textview等控件
- vs2012配置opencv fopen报错问题
- ARM开发问题总结
- c++builder 窗口
- 利用dynamic类型对C#泛型参数运算
- STL的Vector介绍
- stl中关联容器直接卡死程序