[Android] General processing of switching interface, android Interface

Source: Internet
Author: User

[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 ();}

 

 

 

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.