自定义控件TitleView

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@drawable/title_bg"
    android:orientation="horizontal">

    <Button
        android:id="@+id/bt_back"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="5dp"
        android:background="@drawable/back_bg"
        android:text="back"
        android:textColor="#fff" />

    <TextView
        android:id="@+id/tv_text"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical"
        android:layout_weight="1"
        android:gravity="center"
        android:text="Title Text"
        android:textColor="#fff"
        android:textSize="25sp" />

    <Button
        android:id="@+id/bt_edit"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="5dp"
        android:background="@drawable/edit_bg"
        android:text="edit"
        android:textColor="#fff" />


</LinearLayout>
package com.example.customtitle.view;

import android.app.Activity;
import android.content.Context;
import android.util.AttributeSet;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.Toast;

import com.example.customtitle.R;

/**
 * 自定义控件TitleView
 * Created by My on 2017/3/2.
 */

public class TitleView extends LinearLayout {

    private static final String TAG = "TitleView";

    // java代码中new这个对象的时候调用
    public TitleView(Context context) {
        super(context);
        Log.d(TAG, "java代码中new这个对象时调用");
    }

    // xml中创建这个对象时调用
    public TitleView(final Context context, AttributeSet attrs) {
        super(context, attrs);
        Log.d(TAG, "xml中创建这个对象时调用");
        // 将title.xml转换成一个View对象添加给TitleView
        View.inflate(context, R.layout.title, this);
        Button bt_back = (Button) findViewById(R.id.bt_back);
        Button bt_edit = (Button) findViewById(R.id.bt_edit);

        bt_back.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                // 获取到当前Activity对象然后finish掉
                // Returns the context the view is running in
                Activity activity = (Activity) getContext();
                activity.finish();
            }
        });

        bt_edit.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                Toast.makeText(context, "you click EDIT", Toast.LENGTH_SHORT).show();
            }
        });

    }

    // xml中创建这个对象且带样式时调用
    public TitleView(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
    }
}
package com.example.customtitle;

import android.os.Bundle;
import android.support.v7.app.ActionBar;
import android.support.v7.app.AppCompatActivity;

/**
 * 自定义控件TitleView
 * 组合原有控件实现
 * 用于替换系统原有ActionBar
 */
public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        ActionBar actionBar = getSupportActionBar();
        if (actionBar != null) {
            actionBar.hide();
        }

    }
}

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值