我可以将视图发送到另一个活动吗?

时间:2016-09-01 16:09:53

标签: android xml

我的问题是:例如,如果我在 Activity1 中有 RelativeLayout ,我可以将 RelativeLayout 发送到 Activity2

在我的应用中,我在 Activity1 中有3个不同的 RelativeLayout ,如果用户点击其中一个 RelativeLayout ,我会发送它到我的下一个活动。关于如何做到的任何想法?

3 个答案:

答案 0 :(得分:1)

你不能这样做,因为每个Activity都有自己的布局。

您可以执行的操作是发送设置第二个Activity的{​​{1}}所需的数据,使其看起来像您RelativeLayoutActivity Intent附加功能。

答案 1 :(得分:1)

根据您的评论,您需要根据用户在上一屏幕中的选择加载不同的布局。这个问题可以通过几种方式解决。其中之一是将用户偏好从Activity1传递到Activity2。为此,请Activity1

int choice = 0; // assuming user made choice 0
Intent intent = new Intent(Activity1.this, Activity2.class);
intent.putExtra("choice", choice); 
startActivity(choice);

现在,您可以阅读Activity2中的第二个值,并相应地将您的布局(即不同的视图)加载为(onCreate()内):

int choice = getIntent().getIntExtra("choice", 0); // default choice 0

switch(choice) {
    case 0:
        setContentView(R.layout.layout0);
        break;

    case 1:
        setContentView(R.layout.layout1);
        break;

    default:
        setContentView(R.layout.layout2);
}

因此,根据用户的选择,您可以选择不同的布局,然后相应地为您编写业务逻辑。

您的用例的另一个选择是为每个布局定义不同的活动,然后将startActivity()调用到适当的活动。这将分离处理不同布局的业务逻辑,因此可以很容易维护。

您也可以采用片段方式,但最终还会使用上述方法之一。请注意,您选择的方法在很大程度上取决于您的用例,因此我无法为您做出决定。

答案 2 :(得分:0)

我只是给你一个想法,你可以使用 Intents 将数据从第一个活动发送到第二个活动,但是你可以使用第二个Activity收到的数据动态创建一个布局。添加您需要的所有参数。 我希望它能帮到你