Android 复用自制的控件

项目每个页面都需要一个比较复杂的导航控件 其实就是一个很多按钮的布局


当然这个一个一个写绑定事件完全没问题,但项目有20来个页面 一个一个写就不好了,于是想到把他放到一widger包下 那个页面用到了 include他的xml然后在Activity实例化他

FootView.java

package com.aijia.widget;

import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

import com.aijia.main.AijiaExitActivity;
import com.aijia.main.AijiaTabsActivity;
import com.aijia.main.R;
import com.aijia.main.AijiaIndexActivity;
import com.aijia.overall.Constant;

public class FootView {
	private Button index;
	private Button back;
	private Button shopcar;
	private Context context;
	private Button f_order;
	private Button f_exit;

	public FootView(Context context) {
		this.context = context;

	}

	public void init(View view) {

		index = (Button) view.findViewById(R.id.f_index);
		back = (Button) view.findViewById(R.id.f_back);
		shopcar = (Button) view.findViewById(R.id.f_shopcar);
		f_order = (Button) view.findViewById(R.id.f_order);
		f_exit = (Button) view.findViewById(R.id.f_exit);
		index.setOnClickListener(listener);
		back.setOnClickListener(listener);
		shopcar.setOnClickListener(listener);
		f_order.setOnClickListener(listener);
		f_exit.setOnClickListener(listener);
	}

	private OnClickListener listener = new OnClickListener() {

		@Override
		public void onClick(View v) {
			switch (v.getId()) {
			case R.id.f_index:
				gotoIntent(AijiaIndexActivity.class);
				break;
			case R.id.f_back:
				((Activity) context).finish();
				break;
			case R.id.f_shopcar:
				Constant.CURRENTTABID = 3;
				gotoIntent(AijiaTabsActivity.class);
				break;
			case R.id.f_order:
				Constant.CURRENTTABID = 4;
				gotoIntent(AijiaTabsActivity.class);
				break;
			case R.id.f_exit:
				gotoIntent(AijiaExitActivity.class);
				break;
			default:
				break;
			}

		}
	};

	private void gotoIntent(Class<?> cls) {
		Intent intent = new Intent(context, cls);
		context.startActivity(intent);
		((Activity) context).finish();
	}

}

如上 可以进行跳转退出等操作 注意他的init方法 参数是一个view,哪里的view呢?我们看Activity调用他的代码

FootView footView = new FootView(context);
		View roverall_footer = this.findViewById(R.id.overall_footer);
		footView.init(roverall_footer);

这样的话就可以 在应用中复用自己的控件了.


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值