2 u013227495 u013227495 于 2016.04.05 16:39 提问

【Android】请问当前Activity如何控制其他Activity内控件的操作?

需要做一个定时隐藏其他Activity按钮的功能,我的实现方法是在第一个Activity发送广播,在第二个Activity接收,然后做按钮隐藏处理。
问题是只能在第二个Activity等待时间结束,按钮才会隐藏,在其他Activity等待或者退出重新进入第二个Activity,按钮都不会再消失,请问该如何解决?

4个回答

bingaicao1
bingaicao1   2016.04.05 17:52
已采纳

在Application里面定义全局静态变量,或者在类似helper辅助类里面定义,当你的Activity显示的时候,读取变量,来控制按钮的隐藏。如果直接将Activity引用放入静态变量里面,容易导致内存溢出。

zrf1335348191
zrf1335348191   2016.04.05 17:17

分析一下你的问题
首先activityA发送广播隐藏activityB中的view,这是可以做到的,但是当你重新为activity布局即每次重新创建activityB时都会将view恢复到最初的状态
不如弄个全局的变量作为标志位,在想要隐藏view时就置标志位,然后在activityB创建时通过判断标志位来实现对view的隐藏或显示

u013227495
u013227495 感谢帮助,我用静态变量的方法解决了
2 年多之前 回复
sl_18500
sl_18500   2016.04.05 17:42

用sharepreference存储下这个状态,每次创建的时候判断下就可以了

u013227495
u013227495 感谢帮助,之前也考虑过用SharedPreference。可能是写法错了,没达到效果
2 年多之前 回复
bruse_android
bruse_android   2016.04.06 00:18

为什么不采用EventBus回调呢

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
在一个组件中调用其他组件的内容||android中怎样在activity中获取fragment中的控件
getFragmentManager().findFragmentById(id).getView().findViewById(id); 详见google 官方蓝牙里BluetoothChatFragment中setupChat()方法button调用EditText中文字; // Initialize the send button with a listener that f
fragment中调用activity中控件
问题:做表情的时候遇到点击表情后发现没有到输入框中,引用布局发现是用了一个新的布局,不能达到目标效果 解决:getactivity.find.....既能获取activity中的控件,没有新建。
安卓开发——在Activity里如何获得另一个xml布局文件的控件
有时候,我们需要在一个Activity中调用另一个xml布局文件,即非本Activity所绑定的xml布局文件中的控件,这时候就不能直接findViewById,不然会报错指向空对象,这时就需要像下面这样做。 LayoutInflater factory = LayoutInflater.from(当前类.this);  View layout = factory.inflate(R.layo
Android在一个activity改变另一个activity的组件
application相关知识    Application和Activity,Service一样是android框架的一个系统组件,当android程序启动时系统会创建一个 application对象,用来存储系统的一些信息。通常我们是不需要指定一个Application的,这时系统会自动帮我们创建,如果需要创建自己 的Application,也很简单创建一个类继承 Application并在...
在Fragment中修改Activity中的控件
在一些交互体验上做的比较的app上都有这么一个小功能,就是当你手指点击到标题栏的时候,会把你当前浏览的位置自动的滚动到该页面的起始的位置。大概就是下面这个样子:额……这里当然不是来讲用户体验的…哈哈,能分清那个是真正的知乎日报嘛?上面是这个页面的布局,最外层是Activity,里面的内容部分使用Fragment做展示。下面要讲的是如何在Fragment中调用Activity里的控件,这里我们需要完成
在Activity里怎样获得另一个xml布局文件的控件
<br />两个布局文件,<br />一个main.xml,<br />一个main2.xml,<br />一个MActivity,在MActivity的onCreate()里设置的是setContentView(R.layout.main)。<br />现在如果我想获得main2.xml里的一个按钮<br />Button b = (Button)findViewById(R.id.b);//这个b是在main2.xml里定义的<br />这样好像获取不到,因为我等下用b.setOnClickLi
Android 在其他类中获取某个activity类中的布局和Id
layout为布局,布局里面可以放任何空间,获取空间可以用findViewById方法获取 android 获取某个布局控件 添加到另一个布局中 LayoutInflater factorys = LayoutInflater.from(MainActivity.this);//获取MainActivity中LayoutInflater (上下文参数) View view= factorys.i
activity与fragment之间相互调用彼此控件
前面讲过怎样在activity中引入fragment,但仅仅引入是不能满足实际应用的,我们还要实现彼此控件的获取和数据的传递,这次先说怎样彼此获取控件,下一篇说怎样进行数据交互。 1、fragment获取activity中的控件            @Override public void onActivityCreated(@Nullable Bundle savedInstanceS
Android 随手记:Android开发在一个Activity中关闭另一个Activity
Android 关闭activity
安卓开发之非activity中调用布局文件
前提: MainActivity.java Top.java Mapp.java activity_main.xml top.xml mapp.xml 在activity_main中           android:layout_width="match_parent"           android:layout_height="wrap_content"