自定义控件TitleView
2017-03-02 12:57
155 查看
<?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(); } } }
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件