【发布时间】:2015-07-28 18:59:50
【问题描述】:
我正在为 Android 编写应用程序,但在更改按钮背景时遇到了困难。我有四个活动,Activity1 是一个 TableLayout,我有三个按钮。每个 Button 都会打开另一个 Activity。我想从 Activity2 更改 Activity1 中的 Button。所以我试图通过传递一个结果来做到这一点。在 Activity2 我设置了这样的结果:
@Override
public void onClick(View v) {
setResult(Activity1.RESULT_OK);
finish();
}
}
在 Activity1 我有这个代码:
protected void onActivityResult(int requestCode, int resultCode, Intent data){
if (resultCode == RESULT_OK)
button1.setBackgroundResource(R.drawable.image);
}
因此,当用户单击 Activity2 中的 Button 时,然后在 Activity1 中,Button 会更改背景。我的问题是我只能这样做一次,而且我必须在其他活动中再做两次。我尝试执行 RESULT_OK2 但它显示错误。那么我怎样才能做更多次呢?我试图以另一种方式改变背景。在 Activity2 中,我使用了 Activity1 中的 button1,但后来我得到了 NullPointerExeption。 如果有人知道如何做到这一点,请回复!
【问题讨论】:
-
你的意思是什么我只能做一次,我必须再做两次
-
我必须更改 Activity1 中的其他按钮。从 Activity2 我想更改 Activity1 中的 Button1 背景。从 Activity3 我想更改 Activity1 中的 Button2 背景。因此,当我从 Activity2 向 Activity1 发送 RESULT_OK 时,我无法从 Activity3 再次发送 RESULT_OK。