Могу ли я использовать LayoutInflater.inflate (), чтобы открыть новый экран

1

Я относительно новичок в Android, мне нужно открыть новый экран при нажатии кнопки. Поскольку я проверял сообщения здесь, они предлагают использовать setContentView() или использовать Intent. В случае 2 новый экран открывается как новое действие, так как я не хочу, чтобы это произошло мог бы сказать мне, могу ли я использовать LayoutInflater, чтобы открыть новый экран, если да, то как это сделать.

  • 0
    Почему бы вам не открыть новый вид деятельности? Чего ты хочешь достичь? Если вы сообщите нам более подробную информацию, мы поможем вам найти идеальное решение, которое может быть следующим: открытие нового действия, открытие диалога, замена представления содержимого занятия, заполнение контейнера макета раздутым представлением и т. Д.
  • 0
    Я думал, что использование LayoutInflater также заставит кнопку работать автоматически. Кроме того, поскольку новый экран содержит только элементы TextView, я не хотел, чтобы он открывался в новом действии.
Теги:
android-layout
screen

1 ответ

1
Лучший ответ

Ваш вопрос предполагает, что нет необходимости использовать LayoutInflater. Проверьте этот код:

@Override
public void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.basic_layout_1);
    Button button = (Button) findViewById(R.id.basic_layout_1_button);
    button.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            setContentView(R.layout.basic_layout_2);
        }
    });
}

Вот все, что вам нужно, я думаю. Но на всякий случай я также отправляю XML файлы:

basic_layout_1.xml code

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">
<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Hello world! - Basic layout 1"
    android:textSize="32dip">
</TextView>
<Button
    android:id="@+id/basic_layout_1_button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Basic layout 1 Button">
</Button>
</LinearLayout>

и basic_layout_2.xml code

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">
<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Hello world! - Basic layout 2"
    android:textSize="32dip">
</TextView>
</LinearLayout>

// ИЗМЕНИТЬ Важно то, что этот способ создания нового экрана приведет к тому, что кнопка возврата не отобразит basic_layout_1, но она выйдет из вашего приложения (в примере выше). Если вы хотите отобразить предыдущий экран, вы должны переопределить действие кнопки "Назад" (но в этом случае, почему бы не использовать Intent?)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню