,可以通过以下步骤实现:
Intent intent = new Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI); startActivityForResult(intent, PICK_CONTACT_REQUEST);
腾讯云相关产品和产品介绍链接地址:
填完货运单后,自动跳转添加货物信息 填写接货单 接货单中,部分信息由数据库读取自动生成 接货单中的发货和收货客户由数据库返回前端显示 中转地及中转费在填写完发货地和收货地后,根据路线情况动态生成 添加货运单的同时自动生成货运单号...下拉选择未填写的货运回执单,选择后数据库查询联系人、地址等信息直接填写到页面。货运单状态自动填写为未出合同。...所有页面都可以通过货运单编号查看详情 填写运输合同 填写主要是填写货运回执单主表,后端会检索数据库中没有运输合同的信息,从而显示在下拉框中,填票人选择相应的货运单后,会返显部分信息 填写后运输合同将处于未出合同状态...客户到货回执 客户填写到货回执后,同时客服可以进行收货回告 客户可以查询自己的收货历史 中转管理 中转管理主要是进行中转公司信息的填写、查询以及对货物中转信息的录入和历史查询 中转公司 选择某一个城市,...并对该城市的中转公司信息进行录入 可以在中转公司信息查询中查询所有的中转公司信息 使用 Redis 实现一个轻量级的搜索引擎,牛逼啊 !
这两个方法都可以创建或者打开一个现有的数据库(如果数据库已存在则直接打开,否则创建一个新的数据库),并返回一个可对数据库进行读写的对象。...sqlite中是不支持删除列操作的,所以网上 alter table [table_name] drop column [col_name] 这个语句在sqlite中是无效的(这不是MySQL),而替代的方法可以如下...autoincrement, name char(20), phone varchar(20)); create table temp as select id, name from aa; 新表中没有旧表中的...selectionArgs:您可以在选择中包括?s,它将被selectionArgs的值替换,以便它们出现在所选内容中。这些值将被绑定为String。 ...= (EditText) findViewById(R.id.editText1); editText2 = (EditText) findViewById(R.id.editText2
1.前言 整理学习”Android动画效果集合开源APP(BaseAnimation)程序源码“中的通讯录效果。...>笔记20 | 学习整理开源APP(BaseAnimation)程序源码“中的通讯录效果(一) ---- 3.2 通讯录界面ListView的数据填充 加载联系人的方法容易理解,排序》加载》处理 >笔记...21 | 学习整理开源APP(BaseAnimation)程序源码“中的通讯录效果(二) ---- 3.3 联系人的搜索 搜索部分难点是拿出搜索的内容,首先自定义了ClearEditText,给出了一个...textchange的监听,然后进行匹配>筛选>排序>加载到联系人列表中。...public void afterTextChanged(Editable s) { } }); /** * 根据输入框中的值来过滤数据并更新
() 重写onActivityResult()方法,传递进来Intent对象 判断Intent对象是否为null 调用Intent对象的getStringExtra()方法,获取到电话号码 把电话放在Edittext...上,当点击下一步的时候保存到SP中 activity package com.qingguow.mobilesafe; import android.content.Intent; import android.content.SharedPreferences...(savedInstanceState); setContentView(R.layout.activity_lost_find3); et_sec_phone = (EditText...this, SecGuide4Activity.class); startActivity(intent); finish(); } /** * 选择联系人...import android.widget.SimpleAdapter; import com.qingguow.mobilesafe.utils.PhoneContactsUtil; /** * 选择联系人
}); bt2.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // 查看联系人的电话号码...ViewGroup parent) { cursor.moveToPosition(position); CheckBox rb = new CheckBox(MainActivity.this); // 获取联系人的电话号码...并去掉中间的中画、空格 String number = cursor .getString( cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER...CheckBox checkBox=(CheckBox)listView.getChildAt(i); //如果该列表项被勾选 if(checkBox.isChecked()){ //添加到该列表项中...id/bt2" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="获取联系人
一、认识AutoCompleteTextView AutoCompleteTextView是自动完成文本框,从EditText派生而出,实际上它也是一个文本编辑框,但它比普通编辑框多了一个功能:...当用户输入一定字符之后,自动完成文本框会显示一个下拉菜单,供用户从中选择,当用户选择某个菜单项之后,AutoCompleteTextView按用户选择自动填写该文本框。...AutoCompleteTextView除了可使用EditText提供的XML属性和方法之外,还支持如下表所示的常用XML属性及相关方法。..." android:completionHint="选择联系人" android:dropDownHorizontalOffset="10dp" android...至此,关于AutoCompleteTextView和MultiAutoCompleteTextView的简单使用学习完毕,更多属性和方法建议多加练习并掌握。
接着创建一个类,让这个类继承AIDL接口中的Stub类,并实现其抽象方法。在Service中返回这个新建这个类的对象。...== 这是因为AIDL支持的是List,之所以说AIDL只支持传递ArrayList ,是因为它在传递其他List类型时就会自动将其他类型在传递之前转换成ArrayList然后再返回给服务端,也就是说无论你在服务端使用其他的任何...所以本次示例中虽然服务端返回的事CopyOnWriteArrayList,但是在Binder中会按照List的规范去读取它并最终形成一个新的ArrayList返回给客户端,类似的还有ConcurrentHashMap...et_contact_name; private EditText et_contact_phone_number; private EditText et_contact_address...接着创建一个类,让这个类继承AIDL接口中的Stub类,并实现其抽象方法。在Service的onBind方法中返回这个新建这个类的对象。
微信中有对联系人添加标签的功能,如下图所示。 ? 这里有三种状态的标签,分别的未选择,选中,编辑中,由于前两种标签不需要提供输入,所以用TextView实现即可,编辑中的标签用EditText来实现。...,对其软键盘的Enter和Delete按键进行监听,当输入完成后按下Enter则生成一个标签,添加到LinearLayout中。...同样地,当点击未选择的标签也可以选中该标签进行删除。...ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT); params.setMargins(30,30,0,0); //存放标签和标签选择状态...(params); //添加到layout中 layout.addView(editText); //对软键盘的Enter和Del键监听 editText.setOnKeyListener(new View.OnKeyListener
> 0×03实验步骤 在模拟器中安装并启动MyTimer(此时服务器上的newfile.txt文件为空),从功能上看这只是一个计时器。如下图所示 ?...在使用此应用时,我们并未发现什么异常情况,现在我们把视角切换到ubuntu服务器上,这个时候就会发现newfile.txt中多出了一些内容,然后我们访问readinfo.php,就可以看到手机上的联系人信息...继续阅读源码,我们发现代码里有读取联系人的操作,同时将读取结果拼接到URL参数中向远程服务器发送。...综合分析可以发现,本应用程序在运行时,当用户点击设置时间按钮时会读取用户通讯录联系人并通过网络方式发送给远程服务器,可以定义为木马程序。...在实际中黑客可以会读取短信,读取位置信息跟踪定位一个人等。
那这样的一个头布局,有些软件是使用ActionBar来实现的,但是由于ActionBar的灵活性不太好,因而也有很多软件会选择自己去编写实现。...这里举个大家都非常熟悉的例子,我们在添加联系人的时候其实可以编辑的字段真的非常多,姓名、电话、email、传真、住址、昵称等等等等,但其实基本上大家最常用的就是填一个姓名,填一个电话而已。...下面我们就来学习一下如何使用ViewStub来完成仅在需要时才去加载布局的功能,目前profile.xml中只有一个EditText用于编辑信息,那么比如说我们还有另外三个不太常用的EditText,就可以将它们定义在另外一个布局文件当中...接着修改ProfileActivity中的代码,在Activity中添加More Button的点击事件,并在点击事件中进行如下逻辑处理: private EditText editExtra1; private...标签的,因此这有可能导致加载出来的布局存在着多余的嵌套结构,具体如何去取舍就要根据各自的实际情况来决定了,对于那些隐藏的布局文件结构相当复杂的情况,使用ViewStub还是一种相当不错的选择的
比如非常多音乐播放器中的扫描功能事实上就用到了Content Provider功能(当然,也有的播放器是自己去实现更底层的功能)。...(Uri, String, String[]):依据Uri删除指定的数据 public String getType(Uri):用于返回指定的Uri中的数据的MIME类型 *假设操作的数据属于集合类型...以下通过两个实例来解说ContentProvider的使用方法,第一个实例是自定义了一个ContentProvider而且在还有一个应用中读取它。第二个实例是读取当前手机中的联系人。...=(EditText)findViewById(R.id.scoreET); addressET=(EditText)findViewById(R.id.addrET); insertButton...getMenuInflater().inflate(R.menu.main, menu); return true; }} 执行结果例如以下: 今天先写到这里,联系人和ContentObserver
Android点击其他地方隐藏键盘 1.第一种:隐藏页面一进来EditText获取焦点就弹出软键盘 在oncreate()里调用如下方法即可 /** * 隐藏软键盘 */...获取焦点已经弹起软键盘,点击其他空白区域隐藏软键盘 此方法可以写到BaseActivity中其他Activity就相应的也会继承 @Override public boolean dispatchTouchEvent...所在坐标和用户点击的坐标相对比, * 来判断是否隐藏键盘,因为当用户点击EditText时则不能隐藏 */ private boolean isShouldHideKeyboard...= null && (v instanceof EditText)) { int[] l = {0, 0}; v.getLocationInWindow(...则忽略,这个发生在视图刚绘制完,第一个焦点不在EditText上,和用户用轨迹球选择其他的焦点 return false; } /** * 获取InputMethodManager
分析需求 输入@跳转到联系人界面,选中一个或者多个好友返回到当前界面 按退格键删除整块内容 块内的内容可编辑,编辑完了之后将不附带@功能,只是单纯的文字 2....开始编码 既然是文本输入首先继承EditText自定义一个控件 public class MsgEditText extends AppCompatEditText { public MsgEditText...int end = unSpanText.end; sps.setSpan(what, start, end, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); } 写到现在这个整块添加已经做好了...getSpanStart(myImageSpan), getText().getSpanEnd(myImageSpan)); break; } } } } 上面的意思就是,如果你在EditText...中执行删除一个字符的时候,判断前面一个是否是一个Span,如果是自定义的Span就把Span一同删除,关于这个,我可是测试可各种操作才定为这样的 最后是获取需要@的人员名单 //获取用户Id列表,这只是个参考
这也是我们选择 Nebula Graph 作为图数据库来支撑众安保险业务的根本性原因。...再上层,是由离线数仓和实时数仓构成的图数据库加工清洗层,离线数仓通过 DataX 进行每天 T+1 的数据回流,回流业务库的数据存到 ODPS 中,Nebula Graph 通过 Spark 来读取当中数据并写入到数据库中...在实时数仓方面,通过众安保险内部的监听组件 BLCS 将数据写到 Kafka,再经过 FlinkSQL 搭建的实时数仓进行数据清洗加工,最后通过 Flink 实时地写入到 Nebula Graph 中。...个稠密热点,热点手机号被五、六十填为他的家庭联系人的手机号。...按常识来说,当代中国大多独生子女家庭,加上旁系关系,也很难出现五、六十个人同时将同一个手机号填为他的家庭联系人的手机号。
->sz; i++) { fwrite(pc->data+i, sizeof(PeoInfo), 1, pf);//一回写一个大小为PeoInfo的文件 //从pc->data+i的位置开始读写到文件中...{ assert(pc); if (pc->sz == 0) { printf("您还未添加联系人哦~快选择1去添加吧~\n"); return; } int i = 0; printf...{ assert(pc); if (pc->sz == 0) { printf("您还没有加联系人哦~快选择1去添加吧~\n"); return; } printf("请输入要删除的联系人的名字...\n"); pc->sz--; return; } void SearchContact(const Contact* pc)//查找联系人并打印 { printf("请输入要查找的联系人的名字...->sz; i++) { fwrite(pc->data+i, sizeof(PeoInfo), 1, pf);//一回写一个大小为PeoInfo的文件 //从pc->data+i的位置开始读写到文件中
功能是点击Menu按钮,选择文本描述为String的菜单,如我们的例子是”Add note” clickOnMenuItem(String); 这个是判断当前的activity是否和我预期的一致 message...是描述性的文字 name是指activity的名字 关于如何知道activity 名字,目前的方法是得看源码中的 AndroidManifest.xml–Application label–Application...Nodes,在那里我们可以看到所有的activity的name assertCurrentActivity(String message,String name); index用来标识写到哪个EditText...中。...(); 返回到指定的activity goBackToActivity(String name); 在当前的activity中搜索是否含有text的内容 searchText(String text)
怎样建立工程就不说了,本来写好了并贴了图,网络一有问题全没了。抱怨一下,博客传图片真麻烦。竟然不支持复制 粘贴。各位朋友有什么方便的方法请告知。...里面有一个类Socket (客服端),有一个它的构造方法 Socket(InetAddress address, int port) 创建一个流套接字并将其连接到指定 IP 地址的指定端口号。...意思是Socket socket = new Socket(InetAddress address, int port) ;//创建连接地址和端口,就去连接指定的ip和端口号去了,address填ip地址...,port填端口号 只不过InetAddress是一个类,我们打开看一下 ?... Socket(ipAddress, 8080);//创建连接地址和端口--------------就完了,客户端就去连接了 但是ip地址和端口被我们定死了,,,,可不好玩,我们就设置成获取ip文本框中的
前言 在Android开发中,消息推送功能的使用非常常见。 ? 为了降低开发成本,使用第三方推送是现今较为流行的解决方案。...今天,我将手把手教大家如何在你的应用里集成小米推送 该文档基于小米推送官方Demo,并给出简易推送Demo 看该文档前,请先阅读我写的另外两篇文章: 史上最全解析Android消息推送解决方案...消息推送时,开发者可以结合每条消息的内容和目标用户,为每条消息选择对应的标签,为开发者可以根据订阅的主题实现分组群发,从而进行消息的精准推送 //设置标签 MiPushClient.subscribe(...步骤3:在应用内初始化小米推送服务 为了提高推送服务的注册率,我选择在Application的onCreate中初始化推送服务 *BaseActivity.java* package...好了,客户端的代码写好后,可以去小米官网测试一下消息推送了 步骤1:在小米官网的消息推送里选择你创建的应用,然后点击“推送工具” ?
领取专属 10元无门槛券
手把手带您无忧上云