从Activity返回数据
一开始我认为这个东西就和模态对话框差不多有返回值的,但再看一下由于安卓的限制,这个东西还是比那个强大一点的。
这个东西即使比较广泛,获取的数据分为两种,请求码(requestCode)与结果码(resultCode),这两个东西我一开是有点混,主要是不知道请求码的意义,现在明白了,但还是不是很管用,那么现在就分析一下。
请求码
这个东西主要使用来告诉安卓,我们是点击的哪个按钮来打开一个新的窗口的,就比如说有两个按钮,我们打开同一个Activity,返回来的时候我们想知道到底是哪个点开的哪个界面,这个时候我们就要在打开的时候传递一个特定的请求码,例如:
1 | Intent intent = new Intent(); |
1 | Intent intent = new Intent(); |
我们用到了一个新的方法这个方法就是用来请求Activity的,并且我们要求又返回数据,当我们在新的Activity操作完毕之后,我们点击返回的时候我们就需要获取这个数据,我们需要重写onActivityResult
方法,主要是用来获取数据的,具体写法看下面示例:
1 | protected void onActivityResult(int requestCode, int resultCode, Intent data) { |
可以看到,我们在按钮点击事件的时候我们传入的请求码1和2我们这个响应中我们需要处理,然后做相关的操作。
结果码
这个主要是操作完毕进行处理的,操作完毕相应的时候我们获取的,我们设置一个button是用来返回的(例如保存),这个时候我们就可以进行判断(有两个按钮,一个保存一个取消这个样子的我们需要进行处理),我们的onActivityResult
方法这么写:
1 | protected void onActivityResult(int requestCode, int resultCode, Intent data) { |
这就是相应,那么我们在点击保存的时候怎么写呢?
1 | Intent intent = new Intent(); |
1 | Intent intent = new Intent(); |
这个Intent只是用来传输数据的!
这个时候我们就能够进行数据返回的一个操作了,但是在这里有一点一定要注意,可能注意到我判断了一下data是否为null,因为在我们没有点击保存或者取消的时候我们之间点的是返回,所以我们并没有传输数据,这个时候很明显的就是会报一个空指针的错误,我们需要判断是不是空指针才能进行打印。