自定义控件的使用

来源:互联网 发布:惠州温泉知乎 编辑:程序博客网 时间:2024/06/05 10:32
package com.mine.uidemo;import android.content.Context;import android.util.AttributeSet;import android.view.LayoutInflater;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.LinearLayout;import android.widget.Toast;public class TitleLayout extends LinearLayout implements OnClickListener {private Button titleBack;private Button titleEdit;public TitleLayout(Context context, AttributeSet attrs) {super(context, attrs);//通过LayoutInflater的from()方法构建出一个LayoutInflater对象,然后调用inflate()方法就可以动态加载一个布局文件//inflate()方法接收两个参数,一个是布局文件的id,另一个是给加载好的布局添加一个父布局,这里制定为TitleLayout,所以传入this.LayoutInflater.from(context).inflate(R.layout.title, this);titleBack = (Button) findViewById(R.id.title_back);titleEdit = (Button) findViewById(R.id.title_edit);titleBack.setOnClickListener(this);titleEdit.setOnClickListener(this);}@Overridepublic void onClick(View v) {// TODO Auto-generated method stubswitch (v.getId()) {case R.id.title_back:showToast(getContext(), "点击了Back", Toast.LENGTH_LONG);break;case R.id.title_edit:showToast(getContext(), "点击了Edit", Toast.LENGTH_LONG);break;default:break;}}public void showToast(Context context,CharSequence text,int duration){Toast.makeText(context, text, duration).show();}}

MainActivity

package com.mine.uidemo;import android.app.Activity;import android.os.Bundle;import android.view.Window;public class MainActivity extends Activity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        requestWindowFeature(Window.FEATURE_NO_TITLE);        setContentView(R.layout.main);       }}

布局文件

<?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="#808080"     >    <Button        android:id="@+id/title_back"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_gravity="center"        android:layout_margin="5dip"        android:text="Back" />    <TextView        android:id="@+id/title_text"        android:layout_width="0dip"        android:layout_height="wrap_content"        android:layout_gravity="center"        android:layout_weight="1"        android:gravity="center"        android:textSize="24sp"        android:text="Title_Text" />    <Button        android:id="@+id/title_edit"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_gravity="center"        android:layout_margin="5dip"        android:text="Edit" />    </LinearLayout>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent" >    <com.mine.uidemo.TitleLayout        android:layout_width="match_parent"        android:layout_height="wrap_content" >    </com.mine.uidemo.TitleLayout></LinearLayout>

在主布局文件中使用自定义控件要加上包名和完整的类名


0 0