主活动上有一个按钮,当点击时会运行一个方法。在方法中我有第二个活动的意图,但我想用第一个活动的按钮设置该活动的内容视图,因为我想在第一个活动上有多个按钮,但重用第二个活动和只需更改布局。所以....
点击按钮1>将视图设置为layout1>以layout1作为contentview启动活动 要么 点击button2>将视图设置为layout2>以layout2作为contentview
启动活动我想这样做是为了避免创建太多活动
由于
答案 0 :(得分:2)
有很多方法可以做到这一点。这里只是其中几个:
通过向intent(putExtra)添加额外int来传递要使用哪个布局的参数,并在第二个activity的onCreate上使用intent来获取它。
使用片段代替活动,你可以有更多的方法去做。
不推荐 - 使用静态int。
答案 1 :(得分:1)
当单击任一按钮时,您通过意图启动第二个活动,如果单击第一个按钮,则将值1设置为,如果单击第二个按钮,则设置值2.
然后在第二个活动中,您从Intent中读取一个值,如果它是1,则将setContentView设置为第一个布局,如果它是2,则为第二个布局。
答案 2 :(得分:1)
使用Intent.putExtra(String key,int data)为您的意图添加额外信息。然后在第二个活动中使用getIntent()。getIntExtra(key)。您可以为数据使用除整数之外的其他内容,但我建议您这样可以轻松使用切换块。
编辑:
另外,正如耶里安所说:
你可以直接传递布局,它只是一个位于R文件中的int。
这可能是一个好主意,以消除切换块(除非你需要执行其他代码,但这仍然是一个好主意,因为你不会为每个布局定义单独的常量通过)所以在你的第一个活动中说:
intent.putExtra("LAYOUT", R.layout.layout_name);
在第二个:
setContentView(getIntent().getIntExtra("LAYOUT"), DEFAULTVALUE);
希望我帮忙!