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

当然这个一个一个写绑定事件完全没问题,但项目有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控件工作原理的重要途径。通过对`View`类和`ViewGroup`类的源码学习,可以了解它们的测量、布局和绘制流程。比如,`measure()`, `layout()`, 和`draw()`方法是如何协同工作的,以及如何处理...
通过以上步骤,我们就可以创建一个功能强大且易于复用的自定义组合控件了。这个Demo可以帮助开发者更好地理解和实践这一过程,从而在实际项目中提升开发效率和应用质量。如果你下载并研究这个"自定义组合控件"的示例...
在LABVIEW编程中,自制控件是提升程序可读性和重用性的重要手段。通过创建自定义的图形用户界面(GUI)元素,开发者可以更好地定制化软件界面,使其符合特定项目的需求,同时增加代码的模块化。下面我们将深入探讨...
在Android开发中,当涉及到列表或者网格视图(如ListView, RecyclerView)时,通常会遇到一个常见的问题:复用Item控件导致的数据错乱。这是因为列表中的每一个项(Item)都是由一个布局模板复用的,当用户滚动列表...
在Android开发中,创建一个可左右滑动的选择控件是一个常见的需求,这通常涉及到自定义View或者使用现有的库来实现。这种控件可以用于展示多个选项,用户通过左右滑动来浏览和选择。下面我们将详细探讨如何实现这样...
在Android开发中,自定义控件能够满足我们对界面设计的独特需求,使应用更具个性化。本文将深入探讨如何实现一个Android环形...在实际开发中,自定义控件不仅能实现特定的设计需求,还能帮助我们更好地组织和复用代码。
6. **布局使用**:在XML布局文件中,你可以像使用其他Android控件一样使用自定义组件,只需引入对应的命名空间,并在标签中设置相应的属性。 7. **复用与封装**:好的自定义控件应该具有高度的可复用性和封装性,...
本教程将探讨如何利用Android的自定义View或者现有的布局控件,如LinearLayout、TableLayout、GridLayout等,来实现一个可扩展内容和样式的表格控件。我们将主要关注以下几个方面: 1. **TableLayout基础**: ...
在Android开发中,日期区间选择控件是一种常用的用户界面组件,尤其在预订系统、日程管理等场景下不可或缺。本文将深入探讨如何实现一个能够选取年月区间的自定义控件,以及涉及到的相关技术点。 首先,我们需要...
在Android开发中,自定义控件是提升应用独特性和用户体验的重要手段。自定义控件能够满足开发者对于界面设计和交互效果的个性化需求,使应用程序更加符合业务逻辑和用户习惯。以下将详细介绍Android自定义组合控件的...
同时,这些控件可以作为模块化组件,方便在不同项目中复用,降低开发成本。 总的来说,这个"Android UI控件组件库集合【源码】"是开发者提升应用界面质量的利器,无论是初学者还是经验丰富的开发者,都能从中受益。...
在Android应用开发中,树形控件是一种常见的UI组件,用于展示层次结构的数据,比如文件系统、组织架构等。这个“Android 树形控件源码”压缩包提供了一个具体的实现示例,可以帮助开发者深入理解如何自定义和操作这...
在Android开发中,拖拽控件并实现它们的位置交换是一项常见的需求,特别是在设计交互式界面时。本篇文章将深入探讨如何在Android应用中实现在布局中拖拽控件并完成位置互换的功能。 首先,我们需要了解Android中的...
在Android应用开发中,下拉菜单控件是一个常见的交互元素,用于展示可选择的选项,通常出现在顶部或者作为导航的一部分。这种控件可以提供简洁、高效的用户界面,使得用户能够轻松浏览并选择所需的功能或数据。本文...
在Android开发中,自定义控件能够满足开发者对界面及交互的个性化需求,提升应用的用户体验。本实例探讨的是如何创建一个自定义的日历控件,适用于那些希望在应用程序中集成美观、功能丰富的日历视图的开发者。下面...
Android控件(Widgets)是Android应用程序UI设计的核心组成部分,包括按钮(Button)、文本框(EditText)、图片视图(ImageView)、列表视图(ListView)、网格视图(GridView)、滑动选择器(SeekBar)、进度条...
本节将详细介绍如何在ListView中实现一个复用的倒计时控件,同时避免这些问题。 首先,倒计时功能通常需要在UI线程之外执行,以防止阻塞主线程。这里使用了Handler机制的延时消息来实现这一目标。Handler是Android...
7. **模块化设计**:项目名为"DashboardView-master"暗示控件可能作为一个独立的库进行封装,方便在多个项目中复用。这样的库通常会遵循Maven或Gradle的目录结构,包含`build.gradle`文件以管理依赖和版本信息。 8....
总的来说,`Android-Android验证码倒计时控件`是一个为了简化Android应用中验证码倒计时逻辑而创建的自定义组件,它提高了代码的可复用性和用户体验。通过学习和使用这样的开源库,开发者可以快速地在自己的应用中...