您的位置:首页 > 其它

激活另外一个activity,并将第二个activity的数据返回.

2014-06-29 22:56 429 查看
package cn.itcast.getdata;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;

public class DemoActivity extends Activity {
EditText et, et2;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
et = (EditText) this.findViewById(R.id.et_contact1);
et2 = (EditText) this.findViewById(R.id.et_contact2);
}

public void click(View view) {
Intent intent = new Intent(this, ContactActivity.class);
// startActivity(intent);
//rquestCode 1请求码 知道当前事件是来自于哪一个控件. 控件1
startActivityForResult(intent, 1);
}

public void click2(View view) {
Intent intent = new Intent(this, ContactActivity.class);
// startActivity(intent);
//控件2  /rquestCode
startActivityForResult(intent, 2);
}

/**
* 当被激活的第二个activity 使用完毕 销毁的时候 就会执行onActivityresult的方法
*/
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
//如果ContactActivity设置结果码为几,这里就显示为几.

System.out.println("结果码为"+ resultCode);
super.onActivityResult(requestCode, resultCode, data);

if (data != null) {
String name = data.getStringExtra("name");
//rquestCode 1请求码 代表第一个按钮事件.
if (requestCode == 1) {

et.setText(name);
//requestCode,代表第二个按钮事件.
}else if(requestCode == 2){
et2.setText(name);
}

}
}

}
<pre class="java" name="code">package cn.itcast.getdata;

import java.util.ArrayList;
import java.util.List;

import android.app.Activity;
import android.content.Intent;
import android.database.Cursor;
import android.graphics.Color;
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;
//第二个activity.目标是把所有的联系人名字列出来.
public class ContactActivity extends Activity {
ListView lv;
List<String> names;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.contact);
lv = (ListView) this.findViewById(R.id.lv);
//得到names.
names = getContacts();
lv.setAdapter(new MyAdapter());
//处理点击事件,当点击名字的时候,获取名字
lv.setOnItemClickListener(new OnItemClickListener() {

@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
TextView tv = (TextView) view;
String name = tv.getText().toString();
Intent data = new Intent();
//在intent中放入数据.
data.putExtra("name", name);
//3   resultcode  是为了区分结果是来自哪里.
//setsetResult(200);例如.   可以表示访问成功. 404 请求不到.等等
setResult(3, data);
// 可以把当前的activity给结束掉 类似于后退键.
finish();
}
});

}
private class MyAdapter extends BaseAdapter{

@Override
public int getCount() {
// TODO Auto-generated method stub
return names.size();
}

@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return position;
}

@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
TextView tv = new TextView(ContactActivity.this);
tv.setTextSize(28);
tv.setTextColor(Color.RED);
tv.setText(names.get(position));
return tv;
}

}

private List<String> getContacts (){
String rawbase = "content://com.android.contacts/raw_contacts";
String database = "content://com.android.contacts/data";
//由原rawbase得到游标,得到id.
Cursor cursor = this.getContentResolver().query(Uri.parse(rawbase), null, null, null, null);
List<String> names = new ArrayList<String>();
while (cursor.moveToNext()) {

String id  = cursor.getString( cursor.getColumnIndex("_id"));
System.out.println("id ="+ id);
//由database得到游标,将id传递过来后.一起得到类型.
Cursor datacursor = this.getContentResolver().query(Uri.parse(database), null, "raw_contact_id=?", new String[]{id}, null);
while (datacursor.moveToNext()) {

String type = datacursor.getString(datacursor.getColumnIndex("mimetype"));

//如果类型为vnd.android.cursor.item/name,就表示是名字.返回数据.
if("vnd.android.cursor.item/name".equals(type)){
String data1 = datacursor.getString( datacursor.getColumnIndex("data1"));
//将名字加入集合中.
names.add(data1);

}

}
datacursor.close();

}
cursor.close();
return names;
}

}


                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: