android获得上一个activity的返回值来设定当前按钮的可按性

每次想去转载别人的文章就不用自己写了,好想这样省事,但是路途就是那么的艰辛,每次看别人的博客然后自己做时会遇到各种各样的问题,人家的博客就那么几个步骤,然而我照着做时就会遇到奇葩问题,,哎,现在想起了曲婉婷的一首歌《没有什么不同》的歌词尽管痛的苦的没说的,但哪有一路走来都是顺风的,只要为了梦想不服输,再苦也不停止脚步。还是自己总结一下把!!

首先我为以前做都的项目的app新增加了个按钮,要求这个按钮在没获得上一个activity返回过来的值前不能按,这样我就找到了方法,就是使用startActivityForResult方法来获取上一个页面的返回值,然后将这个值赋值给变量中,在页面中设置switch判断这个变量的值,以此来给按钮的可按性进行设置,同时可以设置其他的内容。

关于startActivityForResult的讲解我就不写啦,参考一下别人的,感觉写的不错,这是链接地址 http://www.cnblogs.com/lijunamneg/archive/2013/02/05/2892616.html

实现过程中遇到的问题:

(1)当前页面不能获得上一个页面的返回值,得到的data一直报错,说是null,每次在startActivityForResult否就开始调用了回调方法,得到的intent为null,然后才进入跳转的页面,这让我头疼了,于是我在各个地方加了Log看输出,无奈上网找解决办法,终于找到了方法:

例如:Activity1 中有onActivityResult 方法 ,在Activity2 中有setResult  方法 ,Activity2 关闭后 应该触发Activity1的 onActivityResult 的方法的,但是我manifest 文件中activity2的android:launchMode="singleTask" ,使Activity变成单例模式
,然后Activity1的onActivityResult 就无法触发了。把android:launchMode="singleTask" 改成android:launchMode="singleTop" 就可以了 。 

然后就终于可以了!!好艰难。

(2)在设置按钮的可点击性时也遇到了困难,先找到控件,然后setClickable(false),发现没用。。。。后来上网找方法发现写在了setOnClickListener前面,这就使得前面的设置无效了,因为在setOnClickListener中有一段代码

    if (!isClickable()) {
               setClickable(true);
    }  

然后改到后面就好了。

android获得上一个activity的返回值来设定当前按钮的可按性

时间: 2024-11-09 18:10:33

android获得上一个activity的返回值来设定当前按钮的可按性的相关文章

postman 上一个接口的返回值作为下一个接口的入参

在使用postman做接口测试的时候,在多个接口的测试中,如果需要上一个接口的返回值作为下一个接口的入参,其基本思路是: 1.获取上一个接口的返回值 2.将返回值设置成环境变量或者全局变量 3.设置下一个接口的参数形式 列子: 存在两个接口(设置微信公众号的测试号的菜单栏的接口) 1.第一个接口用户获取access_token.https://api.weixin.qq.com/cgi-bin/token?三个参数如下. 2.第二个接口用户设置菜单栏. 在这两个接口中,我们需要将第一个接口返回的

接口需要上一个接口的返回值(unittest)

import unittest,requests ''' 使用unittest框架的时候,这个接口需要上一个接口的返回值 ''' class Test_case(unittest.TestCase): def setUp(self): #定义全局变量使用globals()函数来 字典形式的 self.g = globals() self.s = requests.session() #创建session()保持连接 print('开始') def test_a(self): print(self

phonegap android插件,启动activity并返回值

Your execute menthod is not quite right. When you do: return new PluginResult(PluginResult.Status.OK,resultFunction); that effectively returns nothing as a result. Instead you need to do: PluginResult r = new PluginResult(PluginResult.Status.NO_RESUL

Android开发:向下一个activity传递数据,返回数据给上一个activity

1.向下一个activity传递数据 activity1 1 Button button=(Button) findViewById(R.id.button1); 2 button.setOnClickListener(new OnClickListener() { 3 4 @Override 5 public void onClick(View v) { 6 Intent intent=new Intent("1111111111111111111"); 7 intent.addCa

android中按back键返回上一个activity,如何重新调用上一个activity的oncreate方法?

默认情况下是不会调用的. @Override public void onBackPressed() { String titleStr = edittitle.getText().toString(); String contentStr = editcontent.getText().toString(); if (title.equals(titleStr) && content.equals(contentStr)) { super.onBackPressed(); } else

【黑马Android】(07)多线程下载的原理/开源项目xutils/显示意图/隐式意图/人品计算器/开启activity获取返回值

多线程下载的原理 司马光砸缸,多开几个小水管,抢救小朋友. import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.InputStream; import java.io.InputStreamReader; import java.io.RandomAccessFile; import java.net.HttpURLConnection; import

Android平台调用Web Service:线程返回值

接上文 前文中的遗留问题 对于Java多线程的理解,我以前仅仅局限于实现Runnable接口或者继承Thread类,然后重写run()方法,最后start()调用就算完事,但是一旦涉及死锁以及对共享资源的访问和随时监控线程的状态和执行顺序和线程返回值等就不行了. Callable 和 Future 简介 Callable接口代表一段可以调用并返回结果的代码;Future接口表示是执行异步任务时的状态.返回值等信息.所以说Callable用于产生结果,Future用于获取结果. 1. Callab

【Android】Android中Service类onStartCommand的返回值有关问题(转)

@Override public int onStartCommand(Intent intent, int flags, int startId) { System.out.println("---------->>onStartCommand2"); return super.onStartCommand(intent, flags, startId); } Android开发的过程中,每次调用startService(Intent)的时候,都会调用该Service对象

Android中Service类onStartCommand的返回值问题

Android开发的过程中,每次调用startService(Intent)的时候,都会调用该Service对象的onStartCommand(Intent,int,int)方法,然后在onStartCommand方法中做一些处理.然后我们注意到这个函数有一个int的返回值,这篇文章就是简单地讲讲int返回值的作用. 从Android官方文档中,我们知道onStartCommand有4种返回值: START_STICKY:如果service进程被kill掉,保留service的状态为开始状态,但