Из вашего комментария кажется, что вам нужно загрузить другой макет, основанный на выборе пользователя на предыдущем экране. Эту проблему можно решить несколькими способами. Один из них - передать предпочтение пользователя от 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()
для соответствующей деятельности. Это позволит отделить бизнес-логику обработки различных макетов и поэтому может быть легко поддержано.
Вы также можете перейти фрагмент, но в конечном итоге он также будет использовать один из вышеуказанных методов. Обратите внимание, что метод, который вы выбираете, зависит от вашего прецедента, поэтому я не могу принять это решение за вас.
Почему вы хотите это сделать? – Shaishav
@Shaishav Я даю пользователю 3 примера макета, которые он может использовать для чего-то ... И чем я собираюсь «показать» активность этого предложения, где он может редактировать текст, изображение, эти вещи .... Делает это имеет смысл? –