当前位置:操作系统 > 安卓/Android >>

android 获取上一个activity的返回值

activity A和B

A 获取数据的activity  B返回数据的activity

点击A上的按钮,在A的textview上显示B中的联系人列表选中的数据 用到baseadapter

1:在主配置文件中声明Bactivity 和 注册通讯录的读写权限

[html]
<span style="font-size:18px;"> <!-- 注册通讯录的读写权限 --> 
 <uses-permission android:name="android.permission.READ_CONTACTS" /> 
 <uses-permission android:name="android.permission.WRITE_CONTACTS" /> 
 
lt;!-- .表示上面 manifest 标签中 package属性的值 --> 
     <activity 
         android:name=".DemoActivity" 
         android:label="选择联系人" > 
     </activity></span> 

2.在A的布局文件中声明2个button和2个edittext 并给button注册点击事件

[html] 
<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" > 
 
    <EditText 
        android:id="@+id/textView" 
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" /> 
 
    <Button 
        android:id="@+id/button1" 
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        android:onClick="click" 
        android:text="选择一个联系人" /> 
 
    <EditText 
        android:id="@+id/textView2" 
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" /> 
 
    <Button 
        android:id="@+id/button2" 
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        android:onClick="click2" 
        android:text="选择第二个联系人" /> 
 
</LinearLayout> 
3:在B的activity布局文件中添加一个listview

[html]
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical" > 
 
    <ListView 
        android:id="@+id/lv" 
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" > 
    </ListView> 
 
</LinearLayout> 
4:在A中获取textView,和编写2个按钮的单击事件,应为是要回去上一个activity返回的值,所以再跳转的时候要用startActivityForResult()方法来激活需要返回数据的activity,并重写onActivityResult()方法接收返回的数据

[java] 
package com.example.getresultdata; 
 
import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.view.Menu; 
import android.view.View; 
import android.widget.TextView; 
 
public class MainActivity extends Activity { 
    private TextView textView; 
    private TextView textView2; 
 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
        setContentView(R.layout.main); 
        textView = (TextView) findViewById(R.id.textView); 
        textView2 = (TextView) findViewById(R.id.textView2); 
    } 
 
    /**
     * 第一个按钮的点击事件
     * 
     * @param view
     */ 
    public void click(View view) { 
        Intent intent = new Intent(this, DemoActivity.class); 
        // startActivity(intent); 
        startActivityForResult(intent, 1);// 请求码 
                                            // 用于区分请求的数据,如果只有一个请求(按钮),这个code可以为0,可以不考虑他的值 
    } 
 
    /**
     * 第二个按钮的点击事件
     * 
     * @param view
     */ 
    public void click2(View view) { 
        Intent intent = new Intent(this, DemoActivity.class); 
        // startActivity(intent); 
        startActivityForResult(intent, 2);// 请求码 
    } 
 
    @Override 
    /**
     * 当跳转的activity(被激活的activity)使用完毕,销毁的时候调用该方法
     */ 
    protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
        // TODO Auto-generated method stub 
        super.onActivityResult(requestCode, resultCode, data); 
        if (data != null) { 
            String name = data.getStringExtra("name"); 
            if (requestCode == 1) {// 因为有2个按钮,所以要区分是触发了那个按钮的单击事件,然后把返回的数据放到对应的EditText中 
   &nbs

补充:移动开发 , Android ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,