`

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);

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


分享到:
评论

相关推荐

    android自定义控件以及复用控件

    源码阅读是理解Android控件工作原理的重要途径。通过对`View`类和`ViewGroup`类的源码学习,可以了解它们的测量、布局和绘制流程。比如,`measure()`, `layout()`, 和`draw()`方法是如何协同工作的,以及如何处理...

    Android自定义组合控件

    通过以上步骤,我们就可以创建一个功能强大且易于复用的自定义组合控件了。这个Demo可以帮助开发者更好地理解和实践这一过程,从而在实际项目中提升开发效率和应用质量。如果你下载并研究这个"自定义组合控件"的示例...

    LABVIEW编程自制控件

    在LABVIEW编程中,自制控件是提升程序可读性和重用性的重要手段。通过创建自定义的图形用户界面(GUI)元素,开发者可以更好地定制化软件界面,使其符合特定项目的需求,同时增加代码的模块化。下面我们将深入探讨...

    Android 设置默认地址选项,解决复用item控件问题

    在Android开发中,当涉及到列表或者网格视图(如ListView, RecyclerView)时,通常会遇到一个常见的问题:复用Item控件导致的数据错乱。这是因为列表中的每一个项(Item)都是由一个布局模板复用的,当用户滚动列表...

    android左右滑动的选择控件

    在Android开发中,创建一个可左右滑动的选择控件是一个常见的需求,这通常涉及到自定义View或者使用现有的库来实现。这种控件可以用于展示多个选项,用户通过左右滑动来浏览和选择。下面我们将详细探讨如何实现这样...

    Android环形进度条控件

    在Android开发中,自定义控件能够满足我们对界面设计的独特需求,使应用更具个性化。本文将深入探讨如何实现一个Android环形...在实际开发中,自定义控件不仅能实现特定的设计需求,还能帮助我们更好地组织和复用代码。

    android自定义组合控件

    6. **布局使用**:在XML布局文件中,你可以像使用其他Android控件一样使用自定义组件,只需引入对应的命名空间,并在标签中设置相应的属性。 7. **复用与封装**:好的自定义控件应该具有高度的可复用性和封装性,...

    Android 表格控件-动态实现表格效果(内容、样式可扩展)

    本教程将探讨如何利用Android的自定义View或者现有的布局控件,如LinearLayout、TableLayout、GridLayout等,来实现一个可扩展内容和样式的表格控件。我们将主要关注以下几个方面: 1. **TableLayout基础**: ...

    android 日期区间选择控件

    在Android开发中,日期区间选择控件是一种常用的用户界面组件,尤其在预订系统、日程管理等场景下不可或缺。本文将深入探讨如何实现一个能够选取年月区间的自定义控件,以及涉及到的相关技术点。 首先,我们需要...

    Android 自定义组合控件案例

    在Android开发中,自定义控件是提升应用独特性和用户体验的重要手段。自定义控件能够满足开发者对于界面设计和交互效果的个性化需求,使应用程序更加符合业务逻辑和用户习惯。以下将详细介绍Android自定义组合控件的...

    Android UI控件组件库集合【源码】

    同时,这些控件可以作为模块化组件,方便在不同项目中复用,降低开发成本。 总的来说,这个"Android UI控件组件库集合【源码】"是开发者提升应用界面质量的利器,无论是初学者还是经验丰富的开发者,都能从中受益。...

    Android 树形控件源码.zip

    在Android应用开发中,树形控件是一种常见的UI组件,用于展示层次结构的数据,比如文件系统、组织架构等。这个“Android 树形控件源码”压缩包提供了一个具体的实现示例,可以帮助开发者深入理解如何自定义和操作这...

    Android 拖拽控件交换位置

    在Android开发中,拖拽控件并实现它们的位置交换是一项常见的需求,特别是在设计交互式界面时。本篇文章将深入探讨如何在Android应用中实现在布局中拖拽控件并完成位置互换的功能。 首先,我们需要了解Android中的...

    Android下拉菜单控件

    在Android应用开发中,下拉菜单控件是一个常见的交互元素,用于展示可选择的选项,通常出现在顶部或者作为导航的一部分。这种控件可以提供简洁、高效的用户界面,使得用户能够轻松浏览并选择所需的功能或数据。本文...

    Android自定义日历控件实例源码下载

    在Android开发中,自定义控件能够满足开发者对界面及交互的个性化需求,提升应用的用户体验。本实例探讨的是如何创建一个自定义的日历控件,适用于那些希望在应用程序中集成美观、功能丰富的日历视图的开发者。下面...

    Android各种控件源码

    Android控件(Widgets)是Android应用程序UI设计的核心组成部分,包括按钮(Button)、文本框(EditText)、图片视图(ImageView)、列表视图(ListView)、网格视图(GridView)、滑动选择器(SeekBar)、进度条...

    listView复用倒计时控件

    本节将详细介绍如何在ListView中实现一个复用的倒计时控件,同时避免这些问题。 首先,倒计时功能通常需要在UI线程之外执行,以防止阻塞主线程。这里使用了Handler机制的延时消息来实现这一目标。Handler是Android...

    android刻度盘控件源码.zip

    7. **模块化设计**:项目名为"DashboardView-master"暗示控件可能作为一个独立的库进行封装,方便在多个项目中复用。这样的库通常会遵循Maven或Gradle的目录结构,包含`build.gradle`文件以管理依赖和版本信息。 8....

    Android-Android验证码倒计时控件

    总的来说,`Android-Android验证码倒计时控件`是一个为了简化Android应用中验证码倒计时逻辑而创建的自定义组件,它提高了代码的可复用性和用户体验。通过学习和使用这样的开源库,开发者可以快速地在自己的应用中...

Global site tag (gtag.js) - Google Analytics