一 顶部标题栏的 点击事件
<include layout="@layout/top_title"/>
如何对它进行点击事件处理?
1.写一个类来继承这个布局文件,在类中去实现它的点击方法
public class TitleBar extends LinearLayout
public TitleBar(Context context) { this(context,null); } public TitleBar(Context context, @Nullable AttributeSet attrs) { this(context, attrs,0); } public TitleBar(Context context, @Nullable AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); }
2.复制这个类的路径去链接到这个布局
<com.example.administrator.playerapp.view.TitleBar
3.实例化你想要实现点击的控件
注:这个类在完成绘制布局后有个回调方法
@Override protected void onFinishInflate() { super.onFinishInflate();
实例化控件
textview=getChildAt(1); pg1=getChildAt(2); pg2=getChildAt(3);
注:此时获取控件不是用ID 而是获取此类中的ChildAt,它即是应对ID.然后再实现点击监听.此时这个类要继承
public class TitleBar extends LinearLayout implements View.OnClickListener {
这样每个控件的点击事一起完成了
textview.setOnClickListener(this); pg1.setOnClickListener(this); pg2.setOnClickListener(this); }
4.下面对点击做个吐司
public void onClick(View v) { switch (v.getId()){ case R.id.textview : Toast.makeText(context,"",Toast.LENGTH_SHORT).show(); break; case R.id.pg1 : Toast.makeText(context,"游戏",Toast.LENGTH_SHORT).show(); break; case R.id.pg2 : Toast.makeText(context,"历史",Toast.LENGTH_SHORT).show(); break; }