Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何使用另一个活动的按钮设置活动的contentview_Android - Fatal编程技术网

Android 如何使用另一个活动的按钮设置活动的contentview

Android 如何使用另一个活动的按钮设置活动的contentview,android,Android,我在主活动上有一个按钮,单击该按钮可以运行一个方法。在该方法中,我打算创建第二个活动,但我希望使用第一个活动中的按钮设置该活动的内容视图,因为我希望在第一个活动中有多个按钮,但重复使用第二个活动并仅更改布局。所以 单击按钮1>将视图设置为布局1>以布局1作为内容视图启动活动 或 单击按钮2>将视图设置为布局2>以布局2作为内容视图启动活动 我想这样做,以避免创建太多的活动 谢谢有很多方法可以做到这一点。以下是其中的几个: 通过向intent(putExtra)添加额外的int来传递要使用哪个布局

我在主活动上有一个按钮,单击该按钮可以运行一个方法。在该方法中,我打算创建第二个活动,但我希望使用第一个活动中的按钮设置该活动的内容视图,因为我希望在第一个活动中有多个按钮,但重复使用第二个活动并仅更改布局。所以

单击按钮1>将视图设置为布局1>以布局1作为内容视图启动活动 或 单击按钮2>将视图设置为布局2>以布局2作为内容视图启动活动

我想这样做,以避免创建太多的活动


谢谢

有很多方法可以做到这一点。以下是其中的几个:

  • 通过向intent(putExtra)添加额外的int来传递要使用哪个布局的参数,并在第二个活动的onCreate上使用intent来获取它

  • 使用片段而不是活动,这样你会有更多的方法来做

  • 不推荐使用-使用静态int


  • 单击其中一个按钮时,您通过一个意图启动第二个活动,在该意图中,如果单击第一个按钮,则输入值1,如果单击第二个按钮,则输入值2


    然后在第二个活动中,您从意图中读取一个值,如果是1,则将ContentView设置为第一个布局,如果是2,则将其设置为第二个布局。

    使用Intent.putExtra(字符串键,int数据)将额外信息添加到意图中。然后在第二个活动中使用getIntent().getIntExtra(键)。您可以对数据使用整数以外的内容,但我建议您使用它,以便轻松使用开关块

    编辑:

    此外,正如亚里安所说:


    您只需传递布局本身,它只是R文件中的一个int

    这样做可能是一个好主意,以消除开关块(除非您也需要执行其他代码,但这仍然是一个好主意,因为您不会为每个要传递的布局定义单独的常量),因此在您的第一个活动中说:

    intent.putExtra("LAYOUT", R.layout.layout_name);
    
    在第二种情况下:

    setContentView(getIntent().getIntExtra("LAYOUT"), DEFAULTVALUE);
    

    希望我能帮忙

    为什么不使用“单击按钮启动另一个活动”。有不同的方法可以执行此操作,但其中任何一种方法都可能会使操作更加混乱。根据它们的功能,您可能必须跟踪哪些变量属于
    布局
    我不确定您的问题,但我认为您必须看到片段的一面。您只需传递布局本身,它只是R文件中的一个int。您不需要调用getExtras。只需调用
    getIntent().getStringExtra(key)
    getIntExtra(key)
    或任何合适的方法。并不是说其他答案没有帮助,这一个给出了一个例子,我认为这有助于人们更好地学习getIntExtra抛出一个错误,说我需要添加一个额外的int。它想要;哦,是的。如果找不到密钥,则需要返回一个默认值。很抱歉