package com.yokmama.learn10.chapter07.lesson34; import com.yokmama.learn10.chapter07.lesson34.ui.FragmentTransitionsActivity; import com.yokmama.learn10.chapter07.lesson34.ui.PropertyAnimationActivity; import com.yokmama.learn10.chapter07.lesson34.ui.TransitionsExplodeActivity; import com.yokmama.learn10.chapter07.lesson34.ui.TransitionsFadeActivity; import com.yokmama.learn10.chapter07.lesson34.ui.TransitionsSlideActivity; import com.yokmama.learn10.chapter07.lesson34.ui.TranslateAnimationActivity; import com.yokmama.learn10.chapter07.lesson34.ui.TranslateAnimationDialogActivity; import android.app.Activity; import android.content.Intent; import android.os.Build; import android.os.Bundle; import android.support.v4.app.ActivityCompat; import android.support.v4.app.ActivityOptionsCompat; import android.view.View; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.ListView; import android.widget.Toast; /** * Created by kayo on 15/04/15. */ public class MainActivity extends Activity { private ListView mListView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mListView = (ListView) findViewById(android.R.id.list); // 一覧の作成 final ArrayAdapter<Activities> adapter = new ArrayAdapter<Activities>( this, android.R.layout.simple_list_item_1, Activities.values()); mListView.setAdapter(adapter); mListView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { // 選択した項目の情報を取り出す Activities item = adapter.getItem(position); // エラーチェック if (item.name().startsWith("Transition")) { if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) { String msg = "Android Lollipop以降でのみ実行可能です。"; Toast.makeText(getApplicationContext(), msg, Toast.LENGTH_SHORT).show(); return; } } else if (item != Activities.ViewAnimation_Activity) { if (Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB) { String msg = "Android Honeycomb以降でのみ実行可能です。"; Toast.makeText(getApplicationContext(), msg, Toast.LENGTH_SHORT).show(); return; } } // Intent発行 Intent intent = new Intent(MainActivity.this, item.activityClass); ActivityOptionsCompat options = ActivityOptionsCompat.makeSceneTransitionAnimation( MainActivity.this); ActivityCompat.startActivity(MainActivity.this, intent, options.toBundle()); } }); } /** * 項目一覧 */ public enum Activities { PropertyAnimation("Property Animation", PropertyAnimationActivity.class), Transitions_Fade("Activity Transitions (fade)", TransitionsFadeActivity.class), Transitions_Explode("Activity Transitions (explode)", TransitionsExplodeActivity.class), Transitions_Slide("Activity Transitions (slide)", TransitionsSlideActivity.class), Transitions_Fragment("Fragment Transitions", FragmentTransitionsActivity.class), ViewAnimation_Activity("View Animation (Activity)", TranslateAnimationActivity.class), ViewAnimation_Dialog("View Animation (Dialog)", TranslateAnimationDialogActivity.class), ; private final String title; private final Class<? extends Activity> activityClass; Activities(String title, Class<? extends Activity> activityClass) { this.title = title; this.activityClass = activityClass; } @Override public String toString() { return this.title; } } }