[Android] General processing of switching interface, android Interface
Implement the activity without changing, only switch View
Base class of the View extraction Interface
Use object-oriented polymorphism to achieve common
TitleManager. java Management title
Package com. tsh. lottery. views; import android. app. activity; import android. view. view; import android. view. view. onClickListener; import android. widget. button; import android. widget. relativeLayout; import com. tsh. lottery. r;/*** title management ** @ author taoshihan **/public class TitleManager {private RelativeLayout generalTitle, unloginTitle, loginTitle; private Button title_login_btn, title_unlogin_btn; private Activity; // Singleton private static TitleManager instance = new TitleManager (); private TitleManager () {} public static TitleManager getInstance () {return instance ;} /*** initialize the title * @ param activity */public void init (Activity activity) {this. activity = activity; generalTitle = (RelativeLayout) activity. findViewById (R. id. title_general); loginTitle = (RelativeLayout) activity. findViewById (R. id. title_login); unloginTitle = (RelativeLayout) activity. findViewById (R. id. title_unlogin); title_login_btn = (Button) activity. findViewById (R. id. title_login_btn); title_unlogin_btn = (Button) activity. findViewById (R. id. title_unlogin_btn); setListener ();}/*** set Click Event */private void setListener () {// login button title_login_btn.setOnClickListener (new OnClickListener () {@ Override public void onClick (View v) {showLoginTitle (); BaseView indexView = new IndexView (activity); MiddleManager. getInstance (). loadView (indexView) ;}}); // exit the title_unlogin_btn.setOnClickListener (new OnClickListener () {@ Override public void onClick (View v) {showUnloginTitle (); baseView loginView = new LoginView (activity); MiddleManager. getInstance (). loadView (loginView) ;}}) ;}/ *** hide all titles */public void hideTitle () {generalTitle. setVisibility (View. GONE); unloginTitle. setVisibility (View. GONE); loginTitle. setVisibility (View. GONE);}/*** display general titles */public void showGeneralTitle () {hideTitle (); generalTitle. setVisibility (View. VISIBLE);}/*** display Unlogged title */public void showUnloginTitle () {hideTitle (); unloginTitle. setVisibility (View. VISIBLE);}/*** display the title of the login */public void showLoginTitle () {hideTitle (); loginTitle. setVisibility (View. VISIBLE );}}
MiddleManager. java manages subject content
Package com. tsh. lottery. views; import android. view. view; import android. view. animation. animationUtils; import android. widget. relativeLayout; import com. tsh. lottery. r; public class MiddleManager {private RelativeLayout mainContainer; // private static MiddleManager manager = new MiddleManager (); private MiddleManager () {}; public static MiddleManager getInstance () {return manager;} public void setMainContainer (RelativeLayout mainContainer) {this. mainContainer = mainContainer;}/*** load interface */public void loadView (BaseView baseView) {mainContainer. removeAllViews (); View child = baseView. getView (); mainContainer. addView (child); child. startAnimation (AnimationUtils. loadAnimation (mainContainer. getContext (), R. anim. left_to_right ));}}
BaseView. java
Package com. tsh. lottery. views; import android. content. context; import android. view. view;/*** main View base class * @ author taoshihan **/public abstract class BaseView {public Context context; public BaseView (Context context) {this. context = context;} public abstract View getView ();}
IndexView. java
Package com. tsh. lottery. views; import android. content. context; import android. util. attributeSet; import android. view. view; import android. view. viewGroup. layoutParams; import android. widget. textView;/*** member interface * @ author taoshihan **/public class IndexView extends BaseView {public IndexView (Context context) {super (context );} @ Override public View getView () {TextView TV = new TextView (context); LayoutParams params = new LayoutParams (LayoutParams. MATCH_PARENT, LayoutParams. WRAP_CONTENT); TV. setLayoutParams (params); TV. setText ("I am a Member interface"); return TV ;}}
MainActivity. java Container Management
Package com. tsh. lottery; import java. lang. reflect. field; import android. app. activity; import android. OS. bundle; import android. OS. handler; import android. OS. message; import android. view. menu; import android. view. menuInflater; import android. view. view; import android. view. viewConfiguration; import android. view. animation. animationUtils; import android. widget. relativeLayout; import com. tsh. lottery. views. baseView; import com. tsh. lottery. views. indexView; import com. tsh. lottery. views. loginView; import com. tsh. lottery. views. middleManager; import com. tsh. lottery. views. titleManager; public class MainActivity extends Activity {private RelativeLayout mainContainer; @ Override protected void onCreate (Bundle savedInstanceState) {super. onCreate (savedInstanceState); setContentView (R. layout. il_main); getActionBar (); setOverflowMenuQues (); initTitle (); initMiddle ();}/*** initialize subject */public void initMiddle () {mainContainer = (RelativeLayout) findViewById (R. id. il_main); BaseView loginView = new LoginView (this); MiddleManager. getInstance (). setMainContainer (mainContainer); MiddleManager. getInstance (). loadView (loginView);}/*** initialization title */private void initTitle () {TitleManager manager = TitleManager. getInstance (); manager. init (this); manager. showUnloginTitle ();}