custom toolbar, baseactivity of project summary

Source: Internet
Author: User
Tags gettext tagname tostring trim

1, Baseactivity.java

Package com.gyq.utilstest.base;
Import Android.content.Context;
Import Android.os.Bundle;
Import android.support.v4.app.FragmentActivity;
Import Android.support.v4.view.GravityCompat;
Import Android.support.v4.widget.DrawerLayout;

Import Android.view.View;
Import com.gyq.utilstest.MyApplication;
Import COM.GYQ.UTILSTEST.R;
Import Com.gyq.utilstest.listener.MyToolBarClickListener;


Import Com.gyq.utilstest.widget.MyToolBar;
 /** * Created by DELL on 2018/4/27. */Public abstract class Baseactivity extends Fragmentactivity implements Mytoolbarclicklistener {public static fi
    nal String is_not_add_activity_list = "is_add_activity_list";//whether to join the ACTIVITY LIST, management protected Context mcontext;
    protected MyApplication mapplication;

    protected String TAG = GetClass (). GetName ();
    protected Activityfragmentinject Annotation;
    protected Mytoolbar Mytoolbar;


    protected Drawerlayout drawer;

    Protected Boolean eventflag = true;


   protected String Start_from; @Override protected void OnCreate (Bundle savedinstancestate) {super.oncreate (savedinstancestate);
        Mcontext = this; if (!getclass (). Isannotationpresent (Activityfragmentinject.class)) {throw new RuntimeException ("must use ACTI
        Vityfragmentinitparams.class ");
        } Start_from = Getintent (). Getstringextra ("Start_from");
        annotation = GetClass (). Getannotation (Activityfragmentinject.class);
        Mapplication = (MyApplication) getapplication ();
        Boolean isnotadd = Getintent (). Getbooleanextra (Is_not_add_activity_list, false);
        Synchronized (Baseactivity.class) {if (!isnotadd) mapplication.getactivitylist (). Add (this);
        } setcontentview (Annotation.contentviewid ());
        if (Annotation.hastoolbar ()) {Inittoolbar ();
        } findviewafterviewcreate ();
    Initdataafterfindview (); } private void Inittoolbar () {Mytoolbar = (MytooLbar) Findviewbyid (R.id.mytoolbar);
        Mytoolbar.setmytoolbarclicklistener (this);
        int toolbarlefticonid = Annotation.toolbarlefticon ();
        if (Toolbarlefticonid! =-1) {Mytoolbar.setlefticon (Toolbarlefticonid);
        } else {mytoolbar.getlefticonroot (). setvisibility (View.gone);
        } int toolbarrighticonid = Annotation.toolbarrighticon ();
        if (Toolbarrighticonid! =-1) {Mytoolbar.setrighticon (Toolbarrighticonid);
        } else {mytoolbar.getrighticonroot (). setvisibility (View.gone);
        } int toolbarlefttextid = Annotation.toolbarlefttext ();
        if (Toolbarlefttextid! =-1) {mytoolbar.setlefttext (Toolbarlefttextid);
        } else {mytoolbar.getlefttextroot (). setvisibility (View.gone);
        } int toolbarrighttextid = Annotation.toolbarrighttext ();
   if (Toolbarrighttextid! =-1) {mytoolbar.setrighttext (Toolbarrighttextid);     } else {mytoolbar.getrighttextroot (). setvisibility (View.gone);
        } int titletextid = Annotation.toolbartitle ();
        if (Titletextid! =-1) {mytoolbar.settitletext (Titletextid);

    }} @Override protected void OnPause () {super.onpause ();

    } @Override protected void Onresume () {super.onresume ();
    } @Override protected void OnDestroy () {Super.ondestroy (); } @Override public void onbackpressed () {if (drawer! = NULL) {if (Drawer.isdraweropen (Gravi
            Tycompat.start)) {drawer.closedrawer (Gravitycompat.start);
            } else {super.onbackpressed ();
        }} else {super.onbackpressed ();

    }} protected abstract void Findviewafterviewcreate ();

    protected abstract void Initdataafterfindview ();

   @Override public void Lefttextclick (view view) {} @Override public void Lefticonclick (view view) {} @Override public void Righttextclick (view view) { } @Override public void Righticonclick (view view) {} protected void Finishall () {if (!ISF
        Inishing ()) {finish ();
            }} protected void Finishwithtag (String tagName) {if (GetClass (). Getsimplename (). Equals (TagName)) {
        Finish ();
 }
    }


}

2, Mytoolbar.java

Package com.gyq.utilstest.widget;
Import Android.content.Context;
Import android.graphics.drawable.Drawable;
Import Android.util.AttributeSet;
Import Android.view.View;
Import Android.widget.ImageView;
Import Android.widget.LinearLayout;
Import Android.widget.RelativeLayout;

Import Android.widget.TextView;
Import COM.GYQ.UTILSTEST.R;

Import Com.gyq.utilstest.listener.MyToolBarClickListener;
 /** * Created by DELL on 2018/4/27.

    */public class Mytoolbar extends LinearLayout implements View.onclicklistener {private Context mcontext;
    Private ImageView Lefticon;
    Private ImageView Righticon;
    Private TextView TitleText;
    Private TextView titleText2;
    Private TextView Lefttext;

    Private TextView Righttext;

    Private Relativelayout Lefticonroot, Lefttextroot, Righticonroot, Righttextroot;

    Private Mytoolbarclicklistener Mytoolbarclicklistener;
    Public Mytoolbar (Context context) {This (context, NULL); } public Mytoolbar (Context ContexT, AttributeSet Attrs) {This (context, attrs, 0); } public Mytoolbar (context context, AttributeSet attrs, int defstyleattr) {Super (context, Attrs, Defstyleatt
        R);
        Mcontext = context;
        Initview ();
    InitData ();
        } private void Initview () {View view = View.inflate (Mcontext, R.layout.widget_toolbar, this);
        Lefticon = (ImageView) View.findviewbyid (r.id.img_toolbar_left);
        Righticon = (ImageView) View.findviewbyid (r.id.img_toolbar_right);
        TitleText = (TextView) View.findviewbyid (r.id.txt_toolbar_title);
        Lefttext = (TextView) View.findviewbyid (r.id.txt_toolbar_left);

        Righttext = (TextView) View.findviewbyid (r.id.txt_toolbar_right);
        Lefticonroot = (relativelayout) View.findviewbyid (r.id.img_toolbar_left_root);
        Lefttextroot = (relativelayout) View.findviewbyid (r.id.txt_toolbar_left_root);
Righticonroot = (relativelayout) View.findviewbyid (r.id.img_toolbar_right_root);        Righttextroot = (relativelayout) View.findviewbyid (r.id.txt_toolbar_right_root);
        } private void InitData () {Lefticonroot.setonclicklistener (this);
        Lefttextroot.setonclicklistener (this);
        Righticonroot.setonclicklistener (this);
    Righttextroot.setonclicklistener (this);
    public void Settitletext (String title) {Titletext.settext (title);
    Public String Gettitletext () {return Titletext.gettext (). toString (). Trim ();
    } public void Settitletext (int resId) {titletext.settext (resId);
    } public void Setlefttext (int resId) {lefttext.settext (resId);
    public void Setrighttext (String title) {Righttext.settext (title);
    Public String Getrighttext () {return Righttext.gettext (). toString (). Trim ();
    } public void Setrighttext (int resId) {righttext.settext (resId); } public void Setlefticon (int resId) {lefticon.setbackgRoundresource (RESID);
    } public void Setrighticon (int resId) {righticon.setbackgroundresource (resId);
    } public void Setrighttextcolor (int resId) {righttext.settextcolor (resId);
    } public Relativelayout Getlefticonroot () {return lefticonroot;
    } public void Setlefticonroot (Relativelayout lefticonroot) {this.lefticonroot = Lefticonroot;
    } public Relativelayout Getlefttextroot () {return lefttextroot;
    } public void Setlefttextroot (Relativelayout lefttextroot) {this.lefttextroot = Lefttextroot;
    } public Relativelayout Getrighticonroot () {return righticonroot;
    } public void Setrighticonroot (Relativelayout righticonroot) {this.righticonroot = Righticonroot;
    } public Relativelayout Getrighttextroot () {return righttextroot;
} public void Setrighttextroot (Relativelayout righttextroot) {this.righttextroot = Righttextroot;    } public void setrighticonvisiable (int visiable) {righticonroot.setvisibility (visiable);
            if (visiable = = VISIBLE) {Righticonroot.setonclicklistener (this);
        Righticonroot.setclickable (TRUE);
            } else {righticonroot.setonclicklistener (null);
        Righticonroot.setclickable (FALSE);
        }} public void setrighttextvisiable (int visiable) {righttextroot.setvisibility (visiable);
            if (visiable = = VISIBLE) {Righttextroot.setonclicklistener (this);
        Righttextroot.setclickable (TRUE);
            } else {righttextroot.setonclicklistener (null);
        Righttextroot.setclickable (FALSE); }} public void Settitlelistener (Onclicklistener onclicklistener) {Titletext.setonclicklistener (Onclickl
    Istener);
        @Override public void OnClick (View v) {if (Mytoolbarclicklistener = = null) {return;
     }   Switch (V.getid ()) {Case R.id.img_toolbar_left_root:mytoolbarclicklistener.lefticonclick (
                V);
            Break
                Case R.id.img_toolbar_right_root:mytoolbarclicklistener.righticonclick (v);
            Break
                Case R.id.txt_toolbar_left_root:mytoolbarclicklistener.lefttextclick (v);
            Break
                Case R.id.txt_toolbar_right_root:mytoolbarclicklistener.righttextclick (v);
        Break }} public void Setmytoolbarclicklistener (Mytoolbarclicklistener mytoolbarclicklistener) {This.mytoolbar
    Clicklistener = Mytoolbarclicklistener; The public void Isshowpopup () {drawable drawable = getresources (). Getdrawable (r.drawable.icon_select_family_up
        );
        Drawable.setbounds (0, 0, drawable.getminimumwidth (), Drawable.getminimumheight ());
        Titletext.setcompounddrawables (null, NULL, drawable, NULL); TitletExt.setcompounddrawablepadding (10);
 }


}

3, Mytoolbarclicklistener.java

Package Com.gyq.utilstest.listener;

Import Android.view.View;

/**
 * Created by DELL on 2018/4/27.
 *

/public interface Mytoolbarclicklistener {
    void Lefttextclick (view view);
    void Lefticonclick (view view);
    void Righttextclick (view view);
    void Righticonclick (view view);
}

3.1 Layout file:

<?xml version= "1.0" encoding= "Utf-8"?> <relativelayout xmlns:android= "http://schemas.android.com/apk/res/ Android "Android:layout_width=" Match_parent "android:layout_height=" @dimen/dimen_50dp "android:background=" @co Lor/white_ff "> <relativelayout android:layout_width=" @dimen/dimen_42dp "android:layout_height=" Match_parent "android:layout_centervertical=" true "> <relativelayout android:id=" @+id/im

            G_toolbar_left_root "android:layout_width=" match_parent "android:layout_height=" Match_parent "> <imageview android:id= "@+id/img_toolbar_left" android:layout_width= "@dimen /DIMEN_22DP "android:layout_height=" @dimen/dimen_22dp "android:layout_centerinparent=" true
            "/> </RelativeLayout> <relativelayout android:id=" @+id/txt_toolbar_left_root " Android:layout_width= "Match_parent "android:layout_height=" match_parent "> <textview android:id=" @ +id/txt_toolbar_left "android:layout_width=" wrap_content "android:layout_height=" Match_par
                Ent "android:layout_centerinparent=" true "android:gravity=" center_vertical " Android:singleline= "true" android:textcolor= "@color/base_normal_txt_title" android:texts Ize= "@dimen/dimen_15sp"/> </RelativeLayout> </RelativeLayout> <textview Androi
        D:id= "@+id/txt_toolbar_title" android:layout_width= "wrap_content" android:layout_height= "Match_parent" Android:layout_centerinparent= "true" android:gravity= "center" android:text= "title" Android:te 


    Xtcolor= "@color/base_normal_txt_title" android:textsize= "@dimen/dimen_17sp" android:textstyle= "bold"/> <relativelayouT android:layout_width= "wrap_content" android:layout_height= "Match_parent" Android:layout_alignpar Entright= "true" > <relativelayout android:id= "@+id/img_toolbar_right_root" android:l
                Ayout_width= "@dimen/dimen_42dp" android:layout_height= "match_parent" > <imageview Android:id= "@+id/img_toolbar_right" android:layout_width= "@dimen/DIMEN_22DP" Android : layout_height= "@dimen/DIMEN_22DP" android:layout_centerinparent= "true"/> </relativelayout&

        Gt
            <relativelayout android:id= "@+id/txt_toolbar_right_root" android:layout_width= "Wrap_content"

            android:layout_height= "Match_parent" android:layout_marginright= "@dimen/dimen_10dp" >
               <textview android:id= "@+id/txt_toolbar_right" android:layout_width= "Wrap_content" android:layout_height= "Match_parent" android:layout_centerinparent= "true" android:gravity
                = "Center" android:singleline= "true" android:textcolor= "@color/base_normal_txt_title" Android:textsize= "@dimen/dimen_15sp"/> </RelativeLayout> </RelativeLayout> </re Lativelayout>

4, Activityfragmentinject.java

Package com.gyq.utilstest.base;


Import COM.GYQ.UTILSTEST.R;

Import Java.lang.annotation.ElementType;
Import java.lang.annotation.Retention;
Import Java.lang.annotation.RetentionPolicy;
Import Java.lang.annotation.Target;


@Retention (retentionpolicy.runtime)
@Target ({elementtype.type}) public
@interface Activityfragmentinject {

    /**
     * Top Office ID
     *
     * @return *
    /int contentviewid () default r.layout.activity_main;

    /**
     * exists navigationview
     *
     * @return *
    /boolean Hasnavigationview () default false;

    /**
     * exists toolbar
     *
     * @return *
    /boolean Hastoolbar () default false;

    /**
     * Toolbar's title ID
     *
     * @return
     */
    

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.