码迷,mamicode.com
首页 > 移动开发 > 详细

android第一行代码-6.自定义控件的实现

时间:2016-05-04 01:07:33      阅读:226      评论:0      收藏:0      [点我收藏+]

标签:

0.假设一个应用中标题栏控件都是共用的,如果每个activity都需要设置button,绑定方法,那代码就会很臃肿。那我们可以自定义控件,然后继承这个控件就行了。

自定义控件为TitleLayout,LayoutInflater.from(context).inflate(R.layout.title,this);可以实现动态加载。LayoutInflater是用来找res/layout/下的xml布局文件,并且实例化的,类似于findViewById(),但是findViewById找的是xml布局文件下的具体widget控件(如Button、TextView等)。

 

1.控件实现

public class TitleLayout extends LinearLayout implements View.OnClickListener {

    public TitleLayout(Context context,AttributeSet attrs) {
        super(context, attrs);
        LayoutInflater.from(context).inflate(R.layout.title,this);
        Button titleBack = (Button) findViewById(R.id.title_back);
        Button titleEdit = (Button) findViewById(R.id.title_edit);

        titleBack.setOnClickListener(this);
        titleEdit.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()){
            case R.id.title_back:
                ((Activity) getContext()).finish();
                break;
            case R.id.title_edit:
                Toast.makeText(getContext(),"you click this button",Toast.LENGTH_SHORT).show();
                break;
        }
    }
}

 

2.控件引用

<?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="match_parent"
    android:orientation="vertical"
    android:weightSum="1">
    
    <activitytest.example.com.uiwidgettest.TitleLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"></activitytest.example.com.uiwidgettest.TitleLayout>


</LinearLayout>

 

android第一行代码-6.自定义控件的实现

标签:

原文地址:http://www.cnblogs.com/alexkn/p/5456927.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!