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

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

1 Ответ

1 голос
/ 21 мая 2011

Ваш вопрос предполагает, что нет необходимости использовать 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?)

...