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