当前位置: 代码迷 >> Android >> Android 复用自持的控件
  详细解决方案

Android 复用自持的控件

热度:66   发布时间:2016-05-01 15:09:02.0
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);

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


  相关解决方案