では、コード。
R.layout.main -> R.layout.first -> R.layout.second -> finish

という画面遷移になっています。
- package yanzm.products.screentransition.lib;
- import android.app.Activity;
- import android.content.Context;
- import android.content.SharedPreferences;
- import android.os.Bundle;
- import android.view.View;
- import android.view.View.OnClickListener;
- import android.widget.Button;
- public class MainActivity extends Activity {
- static final private String prefName = "MY_PREF";
- private int mScreenId = R.layout.main;
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- SharedPreferences prefs = getSharedPreferences(prefName, Context.MODE_PRIVATE);
- int screenId = prefs.getInt("screenId", R.layout.main);
- setScreenContent(screenId);
- }
- @Override
- public void onDestroy() {
- super.onDestroy();
- SharedPreferences prefs = getSharedPreferences(prefName, Context.MODE_PRIVATE);
- SharedPreferences.Editor editor = prefs.edit();
- editor.putInt("screenId", mScreenId);
- editor.commit();
- }
- private void setScreenContent(int screenId) {
- mScreenId = screenId;
- setContentView(screenId);
- switch (screenId) {
- case R.layout.first: {
- setFirstScreenContent();
- break;
- }
- case R.layout.second: {
- setSecondScreenContent();
- break;
- }
- case R.layout.main: {
- setMainScreenContent();
- break;
- }
- }
- }
- private void setMainScreenContent() {
- Button backButton = (Button) findViewById(R.id.back);
- backButton.setVisibility(View.INVISIBLE);
- Button nextButton = (Button) findViewById(R.id.next);
- nextButton.setOnClickListener(new OnClickListener() {
- public void onClick(View v) {
- setScreenContent(R.layout.first);
- }
- });
- }
- private void setFirstScreenContent() {
- Button backButton = (Button) findViewById(R.id.back);
- backButton.setOnClickListener(new OnClickListener() {
- public void onClick(View v) {
- setScreenContent(R.layout.main);
- }
- });
- Button nextButton = (Button) findViewById(R.id.next);
- nextButton.setOnClickListener(new OnClickListener() {
- public void onClick(View v) {
- setScreenContent(R.layout.second);
- }
- });
- }
- private void setSecondScreenContent() {
- Button backButton = (Button) findViewById(R.id.back);
- backButton.setOnClickListener(new OnClickListener() {
- public void onClick(View v) {
- setScreenContent(R.layout.first);
- }
- });
- Button nextButton = (Button) findViewById(R.id.next);
- nextButton.setOnClickListener(new OnClickListener() {
- public void onClick(View v) {
- finish();
- }
- });
- }
- }
R.layout.main
- <?xml version="1.0" encoding="utf-8"?>
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:orientation="vertical"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- >
- <TextView
- android:id="@+id/content"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:layout_weight="1"
- android:text="This is main contents"
- />
- <include layout="@layout/back_next" />
- </LinearLayout>
R.layout.first
- <?xml version="1.0" encoding="utf-8"?>
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:orientation="vertical"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- >
- <LinearLayout
- android:orientation="vertical"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:layout_weight="1">
- <TextView
- android:id="@+id/content"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="this is first contents"
- />
- <ImageView
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:src="@drawable/icon"
- />
- </LinearLayout>
- <include layout="@layout/back_next" />
- </LinearLayout>
R.layout.second
- <?xml version="1.0" encoding="utf-8"?>
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:orientation="vertical"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- >
- <LinearLayout
- android:orientation="vertical"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:layout_weight="1">
- <TextView
- android:id="@+id/content"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="this is second contents"
- />
- <ImageView
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:src="@drawable/icon"
- />
- <ImageView
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:src="@drawable/icon"
- />
- </LinearLayout>
- <include layout="@layout/back_next" />
- </LinearLayout>
R.layout.back_next
- <?xml version="1.0" encoding="utf-8"?>
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:orientation="horizontal"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- >
- <Button
- android:id="@+id/back"
- android:layout_width="0dip"
- android:layout_height="wrap_content"
- android:layout_weight="1"
- android:text="Back"
- />
- <Button
- android:id="@+id/next"
- android:layout_width="0dip"
- android:layout_height="wrap_content"
- android:layout_weight="1"
- android:text="Next"
- />
- </LinearLayout>
複数画面 1 Activity で画面遷移する方法は、簡単でいい方法ですね。初心者なので感心しました。
返信削除andoroidoの、どのドキュメントのどのあたりに、この方法が載っているのでしょうか。
教えていただけませんか。よろしくお願いします。