自定义的BaseActivity

BaseActivity.xml

package com.example.test0103;


import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.LinearLayout;
import android.widget.TextView;

public class BaseActivity extends Activity{

    LinearLayout mLlHolder;
    View mTitlebarHolder;
    View mBtLeft;
    View mBtRight;
    TextView mTitle;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        mLlHolder = new LinearLayout(this);
        mLlHolder.setOrientation(LinearLayout.VERTICAL);

        int titlebarResId = getTitlebarResId();
        if (titlebarResId > 0) {
            mTitlebarHolder = getLayoutInflater().inflate(titlebarResId, null);
//          LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,100);
            mLlHolder.addView(mTitlebarHolder);
            mBtLeft = mTitlebarHolder.findViewById(R.id.titlebar_left);
            mBtRight = mTitlebarHolder.findViewById(R.id.titlebar_right);
            mTitle = (TextView) mTitlebarHolder.findViewById(R.id.titlebar_mid);

            mBtLeft.setOnClickListener(new OnClickListener() {

                @Override
                public void onClick(View v) {
                    onClickLeft();
                }
            });

             mBtRight.setOnClickListener(new OnClickListener() {

                @Override
                public void onClick(View v) {
                    onClickRight();
                }
            });

             int title = getTitleResId();
             if (title > 0) {
                 mTitle.setText(title);
             }

        }

        View content = getContentView();
        if (content != null) {
            mLlHolder.addView(content);
        }

        setContentView(mLlHolder);
        init();
    }


    protected void init() {

    }

    protected View getContentView() {
        return null;
    }

    protected int getTitleResId() {
        return 0;
    }


    private int getTitlebarResId() {
        return R.layout.defalut_titlebar;
    }

    protected void onClickLeft() {
        finish();

    }

    protected void onClickRight() {
        // TODO Auto-generated method stub

    }


}

defalut_titlebar.xml

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="46dp"
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:gravity="center"
     android:background="#dfdfdf"
     >

    <ImageButton 
        android:layout_width="wrap_content"
        android:layout_height="46dp"
        android:id="@+id/titlebar_left"
        android:layout_alignParentLeft="true"
        android:background="@android:color/transparent"
        android:src="@drawable/back"
        />

    <TextView 
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/titlebar_mid"
        android:layout_centerInParent="true"
        android:textSize="25sp"
        />

    <Button 
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/titlebar_right"
        android:layout_alignParentRight="true"
        android:background="#00000000"/>


</RelativeLayout>

MainActivity.java

package com.example.test0103;

import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;

public class MainActivity extends BaseActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    }

    @Override
    protected int getTitleResId() {
        return R.string.title;
    }

    @Override
    protected View getContentView() {
        View view = getLayoutInflater().inflate(R.layout.content,null);
        return view;
    }

}

效果
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值