`
wang_peng1
  • 浏览: 3900742 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

onActivityResult传值的使用

阅读更多

有时候在群里加入的新人总会喜欢问一些过去的问题  有时候不想回答 是因为回答的次数多了

不回答又打击人的积极性  谁让自己接触的早呢  为了省劲还是把简单的东西作为指导篇吧

 

多个activity之间的传值 其实就是onActivityResult,然后别忘了还有一个action的问题 就是在主xml中添加自己的action以便于识别,最后次activity别忘了finansh。

public class Wizard extends Activity {

    private TextView step1result, step2result, step3result;

    public static final String INTENT_STEP1 = "com.novoda.STEP1";
    public static final String INTENT_STEP2 = "com.novoda.STEP2";
    public static final String INTENT_STEP3 = "com.novoda.STEP3";

    private static final int STEP1 = 1;
    private static final int STEP2 = 2;
    private static final int STEP3 = 3;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.wizard);
        
        this.step1result = (TextView)findViewById(R.id.step1result);
        this.step2result = (TextView)findViewById(R.id.step2result);
        this.step3result = (TextView)findViewById(R.id.step3result);  
        
        startActivityForResult(new Intent(Wizard.INTENT_STEP1), STEP1);        
    }
    
    
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        switch (requestCode) {
            case STEP1:
                this.step1result.setText(data.getStringExtra("STEP1RESULT"));
                startActivityForResult(new Intent(Wizard.INTENT_STEP2), STEP2);    
                break;
            case STEP2:
                this.step2result.setText(data.getStringExtra("STEP2RESULT"));
                startActivityForResult(new Intent(Wizard.INTENT_STEP3), STEP3);    
                break;
            case STEP3:
                this.step3result.setText(data.getStringExtra("STEP3RESULT"));
                break;
        }
    }
}

 

public class Step1 extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.step1);

        Button nextStep = (Button)findViewById(R.id.goto2);
        nextStep.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                Intent it = new Intent();
                it.putExtra("STEP1RESULT", ((EditText)findViewById(R.id.step1value)).getText()
                        .toString());
                setResult(Activity.RESULT_OK, it);
                finish();
            }
        });
    }
}

 

后面的step2 step3都是一样的了

然后还有主xml

<application android:icon="@drawable/icon" android:label="@string/app_name">
		<activity android:name=".Wizard" 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=".Step1" android:label="Step1">
			<intent-filter>
				<action android:name="com.novoda.STEP1" />
				<category android:name="android.intent.category.DEFAULT" />
			</intent-filter>
		</activity>

		<activity android:name=".Step2" android:label="Step2">
			<intent-filter>
				<action android:name="com.novoda.STEP2" />
				<category android:name="android.intent.category.DEFAULT" />
			</intent-filter>
		</activity>

		<activity android:name=".Step3" android:label="Step3">
			<intent-filter>
				<action android:name="com.novoda.STEP3" />
				<category android:name="android.intent.category.DEFAULT" />
			</intent-filter>
		</activity>
	</application>
	<uses-sdk android:minSdkVersion="7" />
</manifest> 

 

分享到:
评论
6 楼 sswangqiao 2015-01-30  
呵呵,呵呵
5 楼 killoneself 2014-02-15  
很好,谢谢分享
4 楼 _____LG 2013-12-05  
楼主太赞了,谢谢分享 
3 楼 wshdzkd 2013-10-09  
学习楼主了,多谢
2 楼 luomuzyz 2013-03-27  
很不错。。。
1 楼 黯然星海 2012-12-15  
很好,谢谢分享。

相关推荐

    Android中onActivityResult的用法

    共享这份Android中onActivityResult的用法给大家,希望对大家有帮助。

    startActivityForResult+onActivityResult+setResult

    3个方法的介绍和使用 startActivityForResult(Intent intent, int requestCode ) onActivityResult(int requestCode ,int resultCode, Intent data) setResult(int resultCode,intent intent)

    onActivityResult demo

    这个例子讲的是一个activity对应多个acitivity的传值方法

    Android中Activity之间如何通信以及传值

    以及Activity之间的通过Intent传值,startActivityForResult(intent, REQUSET)以及onActivityResult(int requestCode, int resultCode, Intent data)基本使用

    KotlinDemo.rar

    kotlin按钮点击事件 Intent隐式显式跳转及向下传值 Intent 向上一页返回数据onActivityResult的使用

    react-native跟安卓源生之间的交互

    本demo 基于AS 2.2.2 和最新RN 0.41基础 实现功能主要包含,RN跳转界面到AS,并传值,2调用安卓本身的toast,3实现AS传值到RN中,4使用RN实现 onActivityResult功能

    Android4.0入门之Activity返回参数

    Activity返回参数和传值区别:传参调用startActivity(intent)执行跳转,返回参数用startActivityForResult(intent, 1)方法,还需从写onActivityResult()方法,它是负责初始化回传参数的方法。

    Android源码铃声汇总

    @Override重写onPreferenceTreeClick()方法,处理点击事件,在打开对话框铃声的时候,先读取xml文件,判断是否有值,如果有值,就传值intent.putExtra(RingtoneManager.EXTRA_RINGTONE_EXISTING_URI, phoneUri);...

    Android开发资料合集--续

    2、利用startActivityForResult与onActivityResult方法 16 11、使程序完全退出 18 12、列出所有音乐文件 18 13、使用Intent ACTION 调用系统程序 19 显示网页: 19 显示地图: 19 路径规划: 19 拨打电话: 19 发送 SMS/...

Global site tag (gtag.js) - Google Analytics