开启新的activity获取它的返回值
1、开始界面
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity" > <LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
>
<EditText
android:id="@+id/et_number"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:hint="请输入联系人" />
<Button
android:onClick="click"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="联系人"
/>
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
>
<EditText
android:id="@+id/et_number2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:hint="请输入联系人" />
<Button
android:onClick="click2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="联系人2"
/>
</LinearLayout> </LinearLayout>
2、开启新的activity代码
package com.example.smssender; import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.widget.EditText; public class MainActivity extends Activity { private EditText et_number;
private EditText et_number2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
et_number = (EditText) findViewById(R.id.et_number);
et_number2 = (EditText) findViewById(R.id.et_number2);
} public void click(View view){
Intent intent = new Intent(this, ContactActivity.class);
//startActivity(intent);
//请求码的作用是区别是谁发起的请求
startActivityForResult(intent, 1);
} public void click2(View view){
Intent intent = new Intent(this, ContactActivity.class);
//startActivity(intent);
//请求码的作用是区别是谁发起的请求
startActivityForResult(intent, 2);
} @Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);
if(data != null){
String number = data.getStringExtra("number");
if(requestCode == 1){
et_number.setText(number);
}else{
et_number2.setText(number);
}
}
} }
3、获取联系人
1)清单文件
<uses-permission android:name="android.permission.READ_CONTACTS"/>//权限
2)通过内容提供者获取联系人
package com.example.smssender; import java.util.ArrayList;
import java.util.List; import android.content.ContentResolver;
import android.content.Context;
import android.database.Cursor;
import android.net.Uri; public class ContactService {
public static List<contactInfo> getContactAll(Context context){
List<contactInfo> infos = new ArrayList<contactInfo>();
//通过内容提供者获取联系人
ContentResolver resolver = context.getContentResolver();
Uri uri = Uri.parse("content://com.android.contacts/raw_contacts");
Uri dataUri = Uri.parse("content://com.android.contacts/data");
Cursor cursor = resolver.query(uri, null, null, null, null);
while(cursor.moveToNext()){
String id = cursor.getString(cursor.getColumnIndex("contact_id"));
Cursor datacursor = resolver.query(dataUri, null, "raw_contact_id=?", new String[]{id}, null);
contactInfo info = new contactInfo();
while(datacursor.moveToNext()){
String data1 = datacursor.getString(datacursor.getColumnIndex("data1"));
String mimetype = datacursor.getString(datacursor.getColumnIndex("mimetype"));
if("vnd.android.cursor.item/name".equals(mimetype)){
info.setUsername(data1);
}else if("vnd.android.cursor.item/phone_v2".equals(mimetype)){
info.setNumber(data1);
}
} infos.add(info); }
return infos;
}
}
4、设置联系人进Listview
<?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:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/lv_contact"
></ListView> </LinearLayout>
<?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" > <TextView
android:id="@+id/et_username"
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>
<TextView
android:id="@+id/et_number"
android:layout_width="match_parent"
android:layout_height="wrap_content"
/> </LinearLayout>
java代码:
package com.example.smssender; import java.util.List; import android.app.Activity;
import android.content.ContentResolver;
import android.content.Intent;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.BaseAdapter;
import android.widget.ListView;
import android.widget.TextView; public class ContactActivity extends Activity { private ListView lv_contact;
private List<contactInfo> infos = null;
@Override
protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_contact); infos = ContactService.getContactAll(this); lv_contact = (ListView)findViewById(R.id.lv_contact);
lv_contact.setAdapter(new ContactAdapter()); lv_contact.setOnItemClickListener(new OnItemClickListener() { @Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
// TODO Auto-generated method stub
contactInfo info = infos.get(arg2);
String number = info.getNumber();
Intent data = new Intent();
data.putExtra("number", number);
setResult(0, data);//0是结果码,可以在onActivityResult重新获取
//关闭当前activity,把数据传回给它的激活者
finish(); } });
} private class ContactAdapter extends BaseAdapter{ @Override
public int getCount() {
// TODO Auto-generated method stub
return infos.size();
} @Override
public Object getItem(int arg0) {
// TODO Auto-generated method stub
return null;
} @Override
public long getItemId(int arg0) {
// TODO Auto-generated method stub
return 0;
} @Override
public View getView(int arg0, View arg1, ViewGroup arg2) {
// TODO Auto-generated method stub
contactInfo info = infos.get(arg0);
View view = View.inflate(ContactActivity.this, R.layout.contact_item, null);
TextView et_username = (TextView)view.findViewById(R.id.et_username);
et_username.setText(info.getUsername()); TextView et_number = (TextView)view.findViewById(R.id.et_number);
et_number.setText(info.getNumber()); return view;
} } }
开启新的activity获取它的返回值的更多相关文章
- 无废话Android之activity的生命周期、activity的启动模式、activity横竖屏切换的生命周期、开启新的activity获取他的返回值、利用广播实现ip拨号、短信接收广播、短信监听器(6)
1.activity的生命周期 这七个方法定义了Activity的完整生命周期.实现这些方法可以帮助我们监视其中的三个嵌套生命周期循环: (1)Activity的完整生命周期 自第一次调用onCrea ...
- [android] 开启新的activity获取他的返回值
应用场景:打开一个新的activity,在这个activity上获取数据,返回给打开它的界面 短信发送时,可以直接选择系统联系人 界面布局是一个线性布局,里面右侧选择联系人在EditText的右上,因 ...
- python asyncio 获取协程返回值和使用callback
1. 获取协程返回值,实质就是future中的task import asyncioimport timeasync def get_html(url): print("start get ...
- 统计文件种类数+获取子shell返回值的其它方法
前言 只是作为一个shell的小小练习和日常统计用,瞎折腾的过程中也是摸到了获取子shell返回值的几种方法: 肯定还有别的方法,跟进程间的通信相关,希望你能提出建议和补充,谢谢~ 完整程序: #! ...
- web3调用call()方法获取不到返回值
一.web3的call()获取不到返回值问题和解决方法 在彩票小合约中,遇到一个问题:合约中 有两个方法 第一个返回一个账户地址,没有使用到当前方法调用者信息: 第二个使用到了当前方法调用者信息 在w ...
- 利用SQLServer查询分析器获取存储过程的返回值,检查测试存储过程
1.存储过程没有返回值的情况(即存储过程语句中没有return之类的语句)用方法 int count = ExecuteNonQuery(..)执行存储过程其返回值只有两种情况(1)如果通过查询分析器 ...
- python使用threading获取线程函数返回值的实现方法
python使用threading获取线程函数返回值的实现方法 这篇文章主要介绍了python使用threading获取线程函数返回值的实现方法,需要的朋友可以参考下 threading用于提供线程相 ...
- Android -- 在一个Activity开启另一个Activity 并 获取他的返回值。
1. 视图示例, 按选择弹出 2界面, 选择选项 回显到1 2. 示例代码 MainActivity.java, 第一个activity public class MainActivity e ...
- Python建立多线程任务并获取每个线程返回值
1.进程和线程 (1)进程是一个执行中的程序.每个进程都拥有自己的地址空间.内存.数据栈以及其他用于跟踪执行的辅助数据.进程也可以派生新的进程来执行其他任务,不过每个新进程都拥有自己的内存和数据栈,所 ...
随机推荐
- OSG报警特效学习总结
方法一:粒子系统 OSG的粒子系统有自己定义好的模块,如osgParticle::ExplosionEffect(爆炸模拟):osgParticle::SmokeEffect(烟雾模拟 ...
- J2SE知识点摘记(十七)
1. Applet Applet的生命周期分为四个阶段,各阶段分别由init,start,stop和destroy四种方法来具体体现. public void init() 此方法通知A ...
- ReentrantLock(重入锁)以及公平性
ReentrantLock(重入锁)以及公平性 标签(空格分隔): java NIO 如果在绝对时间上,先对锁进行获取的请求一定被先满足,那么这个锁是公平的,反之,是不公平的,也就是说等待时间最长的线 ...
- 【Windows 8 Store App】学习一:获取设备信息
原文http://www.cnblogs.com/java-koma/archive/2013/05/22/3093306.html 通常情况下我们需要知道用户设备的一些信息:deviceId, os ...
- ubuntu下vim与系统剪切板互相拷贝
1.install xclip sudo apt-get install xclip 2. install gvim sudo apt-get install vim-gnome 此时使用 “+ 寄存 ...
- Java面试题之六
三十一.如何取小数点前两位,并四舍五入. package com.lovo; public class TestDot2 { // 方法1 public void test1(double c) { ...
- asp.net弹出多个模态窗口
asp.net中无限制弹出模态窗口 特点: 1. 可以在模态窗口上再弹出模态窗口,不限制次数 2. 弹出窗口的支持拖放,及调整大小 3. 弹出窗口关闭后可以动态控制 ...
- CentOS 安装Node.js
先安装gcc-c++编译环境和openssl yum install gcc-c++ openssl-devel 然后 下载包并解压 cd /usr/local/src wget http://nod ...
- SQL练习之两个列值的交换
SELECT * FROM dbo.test2
- Ubuntu - Dconf 注册表键值修改参考表
gsettings reset org.gnome.desktop.wm.preferences theme默认gnomegsettings set org.gnome.desktop.interfa ...