2016-09-01 5 views
0

мой вопрос: Если, например, у меня есть RelativeLayout в Activity1, я могу послать что RelativeLayout в деятельности2?Могу ли я отправить вид другому мероприятию?

В моем приложении у меня есть 3 различных RelativeLayout в Activity1, а если пользователь нажал на одну из тех RelativeLayout Я хотел бы, чтобы отправить его в моей следующей деятельности. Любые идеи о том, как это сделать?

+0

Почему вы хотите это сделать? – Shaishav

+0

@Shaishav Я даю пользователю 3 примера макета, которые он может использовать для чего-то ... И чем я собираюсь «показать» активность этого предложения, где он может редактировать текст, изображение, эти вещи .... Делает это имеет смысл? –

ответ

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() для соответствующей деятельности. Это позволит отделить бизнес-логику обработки различных макетов и поэтому может быть легко поддержано.

Вы также можете перейти фрагмент, но в конечном итоге он также будет использовать один из вышеуказанных методов. Обратите внимание, что метод, который вы выбираете, зависит от вашего прецедента, поэтому я не могу принять это решение за вас.

+0

Спасибо @Shaishav, я думаю, что это самый близкий ответ за то, что мне нужно! :) –

1

Вы не можете этого сделать, поскольку каждый Activity имеет свой собственный макет.

Что вы можете сделать вместо этого отправить данные, необходимые для настройки вашего вторых Activity «s RelativeLayout так, что она выглядит, как в ваших первую Activity через Intent статистов.

+0

Благодаря @npace проблема заключается в том, что макет Avticvity изменится в зависимости от каждого выбранного пользователем элемента. Если бы я использовал фрагменты, это имело бы смысл? И чем просто хранить каждый фрагмент, который хочет пользователь, поэтому я могу продолжать использовать этот фрагмент для следующих действий? –

0

Я просто дам вам идею, вы можете отправить данные из первой активности во вторую, используя Intents, однако вы можете создать макет динамически с использованием данных, полученных вторым действием, и добавить все необходимые параметры , Надеюсь, это вам поможет

Смежные вопросы