您的位置:首页 > 移动开发 > Android开发

Android中startActivityForResult的简单例子

2014-12-09 15:15 519 查看
这是一个完整的例子,完整复制就能运行

原理 startActivityForResult(intent, 200);---->setResult(200, intent);----->onActivityResult(int requestCode, int resultCode, Intent data)

功能:换城市名称

效果







项目结构



界面:

activity_main.xml

<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" >

<TextView

android:id="@+id/find_xian"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="西安"

android:textSize="20dp"

android:background="#66669999"

android:clickable="true"

/>

</LinearLayout>

activity_second.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/city_listview"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:background="#6699FF"

>

</ListView>

</LinearLayout>

activity_city_item.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"

android:background="#6699FF"

>

<TextView

android:id="@+id/city_items"

android:layout_width="fill_parent"

android:layout_height="95dp"

android:text="北京"

android:background="#6699FF"

android:textColor="#FFFFFF"

android:textSize="30dp"

android:padding="12dp"

/>

</LinearLayout>

java代码:

MainActivity

package com.zhh.android;

import android.os.Bundle;

import android.app.Activity;

import android.content.Intent;

import android.view.Menu;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.TextView;

public class MainActivity extends Activity {

private TextView tv;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

tv = (TextView) findViewById(R.id.find_xian);

tv.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

Intent intent = new Intent();

intent.setClass(MainActivity.this, SecondActivity.class);

startActivityForResult(intent, 200);

}

});

}

// 改变城市名称返回的数据

@Override

public void onActivityResult(int requestCode, int resultCode, Intent data) {

super.onActivityResult(requestCode, resultCode, data);

if (data != null) {

tv.setText(data.getStringExtra("name").toString());

}

}

}//class

SecondActivity

package com.zhh.android;

import java.util.ArrayList;

import java.util.HashMap;

import java.util.List;

import java.util.Map;

import android.app.Activity;

import android.content.Intent;

import android.os.Bundle;

import android.view.View;

import android.widget.AdapterView;

import android.widget.ListView;

import android.widget.SimpleAdapter;

import android.widget.AdapterView.OnItemClickListener;

public class SecondActivity extends Activity {

private ListView citylist;

List<Map<String, Object>> data;

// 写个城市的集合

@Override

protected void onCreate(Bundle savedInstanceState) {

// TODO Auto-generated method stub

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_second);

init();

// 得到数据

List<Map<String, Object>> mydata = getdata();

// 绑定数据

SimpleAdapter adapter = new SimpleAdapter(this, mydata,

R.layout.activity_city_item, new String[] { "name" },

new int[] { R.id.city_items });

citylist.setAdapter(adapter);

citylist.setOnItemClickListener(new OnItemClickListener() {

@Override

public void onItemClick(AdapterView<?> parent, View view,

int position, long id) {

Map<String, Object> map = (Map<String, Object>) parent

.getItemAtPosition(position);

Intent intent = new Intent();

intent.putExtra("name", (String) map.get("name"));

setResult(200, intent);

finish();

}

});

}

// 自己造的数据

public List<Map<String, Object>> getdata() {

data = new ArrayList<Map<String, Object>>();

Map<String, Object> map1 = new HashMap<String, Object>();

map1.put("name", "西安");

Map<String, Object> map2 = new HashMap<String, Object>();

map2.put("name", "北京");

Map<String, Object> map3 = new HashMap<String, Object>();

map3.put("name", "上海");

Map<String, Object> map4 = new HashMap<String, Object>();

map4.put("name", "广州");

Map<String, Object> map5 = new HashMap<String, Object>();

map5.put("name", "深圳");

data.add(map1);

data.add(map2);

data.add(map3);

data.add(map4);

data.add(map5);

return data;

}

private void init() {

citylist = (ListView) findViewById(R.id.city_listview);

}

}

主清单文件中注册activity

<activity

android:name="com.zhh.android.MainActivity"

android:label="@string/app_name" >

<intent-filter>

<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />

</intent-filter>

</activity>

<activity

android:name="com.zhh.android.SecondActivity"

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