1、startActivityForResult(intent, 0);作用开启一个新的activity获取返回的结果。
例子:
package com.example.testsendsms;
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;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
et_number = (EditText) findViewById(R.id.et_number);
}
public void Select_number(View view){
Intent intent = new Intent(this, com.example.testsendsms.SelectContactActivity.class);
//startActivity(intent);
//开启一个新的activity,并获取新的activity执行完毕后返回的结果
startActivityForResult(intent, 0);
}
@Override
//新开启的Activity关闭的时候执行的方法
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);
if(data!=null){
String num = data.getStringExtra("num");
et_number.setText(num);
}
}
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;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
et_number = (EditText) findViewById(R.id.et_number);
}
public void Select_number(View view){
Intent intent = new Intent(this, com.example.testsendsms.SelectContactActivity.class);
//startActivity(intent);
//开启一个新的activity,并获取新的activity执行完毕后返回的结果
startActivityForResult(intent, 0);
}
@Override
//新开启的Activity关闭的时候执行的方法
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);
if(data!=null){
String num = data.getStringExtra("num");
et_number.setText(num);
}
}
另一个activity:
package com.example.testsendsms;
import java.util.List;
import com.example.ContactsInfoServices.ContactInfo;
import com.example.ContactsInfoServices.ContactInfoService;
import android.app.Activity;
import android.content.Intent;
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 SelectContactActivity extends Activity {
private ListView lv_select_view ;
private List<ContactInfo> contactInfos;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.contact_activity);
lv_select_view = (ListView) findViewById(R.id.lv_select_contact);
contactInfos = (List<ContactInfo>) ContactInfoService.getContactInfos(this);
lv_select_view.setAdapter(new ContactAdapter());
lv_select_view.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
ContactInfo info = contactInfos.get(position);
String num = info.getNumber();
//传递数据给调用它的activity
Intent data = new Intent();
data.putExtra("num", num);
setResult(0, data);
//关闭当前Activity。传递数据给调用者
finish();
}
});
}
private class ContactAdapter extends BaseAdapter{
@Override
public int getCount() {
// TODO Auto-generated method stub
return contactInfos.size();
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return null;
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ContactInfo contactInfo = contactInfos.get(position);
View view = View.inflate(getApplicationContext(),R.layout.contact_item,null);
TextView tv_name = (TextView) view.findViewById(R.id.name);
tv_name.setText(contactInfo.getName());
TextView tv_num = (TextView) view.findViewById(R.id.num);
tv_num.setText(contactInfo.getNumber());
return view;
}
}
}
import java.util.List;
import com.example.ContactsInfoServices.ContactInfo;
import com.example.ContactsInfoServices.ContactInfoService;
import android.app.Activity;
import android.content.Intent;
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 SelectContactActivity extends Activity {
private ListView lv_select_view ;
private List<ContactInfo> contactInfos;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.contact_activity);
lv_select_view = (ListView) findViewById(R.id.lv_select_contact);
contactInfos = (List<ContactInfo>) ContactInfoService.getContactInfos(this);
lv_select_view.setAdapter(new ContactAdapter());
lv_select_view.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
ContactInfo info = contactInfos.get(position);
String num = info.getNumber();
//传递数据给调用它的activity
Intent data = new Intent();
data.putExtra("num", num);
setResult(0, data);
//关闭当前Activity。传递数据给调用者
finish();
}
});
}
private class ContactAdapter extends BaseAdapter{
@Override
public int getCount() {
// TODO Auto-generated method stub
return contactInfos.size();
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return null;
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ContactInfo contactInfo = contactInfos.get(position);
View view = View.inflate(getApplicationContext(),R.layout.contact_item,null);
TextView tv_name = (TextView) view.findViewById(R.id.name);
tv_name.setText(contactInfo.getName());
TextView tv_num = (TextView) view.findViewById(R.id.num);
tv_num.setText(contactInfo.getNumber());
return view;
}
}
}