我正在为Android编写应用程序,但在更改Buttons背景方面遇到困难。我有四个Activity,Activity1是一个TableLayout,其中有三个Button。每个按钮都会打开另一个活动。我想从Activity2更改Activity1中的按钮。所以我尝试通过传递结果来实现。在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。
如果有人对此有任何想法,请回复!
最佳答案
您也可以比较requestCode(这是您在startActivityForResult上传递的请求代码)
这样可以避免将RESULT_OK解释为每个活动结果。