Java tutorial
/* * Copyright 2012 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package net.libaier.chinesestringuppuzzle; import java.io.IOException; import java.util.ArrayList; import net.libaier.chinesestringuppuzzle.ScreenSlidePageFragment.OnEnterClickListener; import net.libaier.chinesestringuppuzzle.animation.ZoomOutPageTransformer; import android.app.Fragment; import android.app.FragmentManager; import android.content.pm.ActivityInfo; import android.database.SQLException; import android.database.sqlite.SQLiteDatabase; import android.os.Bundle; import android.support.v13.app.FragmentStatePagerAdapter; import android.support.v4.app.FragmentActivity; import android.support.v4.view.ViewPager; import android.view.ViewGroup; import android.view.Window; import android.view.WindowManager; import android.widget.Toast; /** * Demonstrates a "screen-slide" animation using a {@link ViewPager}. Because {@link ViewPager} * automatically plays such an animation when calling {@link ViewPager#setCurrentItem(int)}, there * isn't any animation-specific code in this sample. * * <p>This sample shows a "next" button that advances the user to the next step in a wizard, * animating the current screen out (to the left) and the next screen in (from the right). The * reverse animation is played when the user presses the "previous" button.</p> * * @see ScreenSlidePageFragment */ public class ScreenSlideActivity extends FragmentActivity implements OnEnterClickListener { /** * he number of pages (wizard steps) to show in this demo */ private SQLiteDatabase database; private PuzzleUtils puzzleUtils; /** * The pager widget, which handles animation and allows swiping horizontally to access previous * and next wizard steps. */ private ViewPager mPager; /** * The pager adapter, which provides the pages to the view pager widget. */ private ScreenSlidePagerAdapter mPagerAdapter; private void fullScreenAndLandscape() { getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); requestWindowFeature(Window.FEATURE_NO_TITLE); setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); fullScreenAndLandscape(); setContentView(R.layout.activity_screen_slide); Toast.makeText(getApplicationContext(), "??...", Toast.LENGTH_SHORT).show(); DataBaseHelper myDbHelper = new DataBaseHelper(this); try { myDbHelper.createDataBase(); } catch (IOException ioe) { throw new Error("Unable to create database"); } try { database = myDbHelper.openDataBase(); } catch (SQLException sqle) { throw sqle; } puzzleUtils = PuzzleUtils.getInstance(); puzzleUtils.setDatabase(database); TypefaceUtils.init(this); //TypefaceUtils.msyh =null; Toast.makeText(getApplicationContext(), "????", Toast.LENGTH_SHORT).show(); // Instantiate a ViewPager and a PagerAdapter. mPager = (ViewPager) findViewById(R.id.pager); //mPager.setPageTransformer(true, new ZoomOutPageTransformer()); mPagerAdapter = new ScreenSlidePagerAdapter(getFragmentManager()); mPager.setAdapter(mPagerAdapter); mPagerAdapter.addFragment(0, "?", "?", false, false); puzzleUtils.initIdiomsList(); mPagerAdapter.addFragment(1, puzzleUtils.getCurrentIdiom().getName(), "...", true, true); } /** * A simple pager adapter that represents 5 {@link ScreenSlidePageFragment} objects, in * sequence. */ public class ScreenSlidePagerAdapter extends FragmentStatePagerAdapter { private ArrayList<ScreenSlidePageFragment> mFragments = new ArrayList<ScreenSlidePageFragment>(); public ScreenSlidePagerAdapter(FragmentManager fm) { super(fm); } @Override public Object instantiateItem(ViewGroup arg0, int arg1) { // TODO Auto-generated method stub return super.instantiateItem(arg0, arg1); } public boolean addFragment(int position, String idiomNameString, String userAnswerString, boolean isEnabled_answer, boolean isEnabled_enter) { ScreenSlidePageFragment StartFragment = new ScreenSlidePageFragment(); StartFragment.updateFragmentView(position, idiomNameString, userAnswerString, isEnabled_answer, isEnabled_enter); mFragments.add(StartFragment); return true; } public boolean setFragment(int position, String idiomNameString, String userAnswerString, boolean isEnabled_answer, boolean isEnabled_enter) { mFragments.get(position).updateFragmentView(position, idiomNameString, userAnswerString, isEnabled_answer, isEnabled_enter); return true; } public boolean getCorrectAnswer(String Answer) { mFragments.get(puzzleUtils.getIdiomsList().size() - 1).setEnabled_answer(false); mFragments.get(puzzleUtils.getIdiomsList().size() - 1).setEnabled_enter(false); mFragments.get(puzzleUtils.getIdiomsList().size() - 1).setUserAnswerString(Answer); mFragments.get(puzzleUtils.getIdiomsList().size() - 1).updateFragmentView(); return false; } @Override public Fragment getItem(int position) { return mFragments.get(position); } @Override public int getCount() { // TODO Auto-generated method stub return mFragments.size(); } } @Override public void OnEnterClickListener(String answer) { // TODO Auto-generated method stub if (puzzleUtils.isRightAnswer(answer)) { mPagerAdapter.getCorrectAnswer(answer); mPagerAdapter.addFragment(puzzleUtils.getIdiomsList().size(), puzzleUtils.getCurrentIdiom().getName(), "...", true, true); mPager.setCurrentItem(puzzleUtils.getIdiomsList().size()); } } }