`

【原创】android中定义BaseActivity

 
阅读更多
[size=medium]
需求:
如果一个应用程序中有许多activity都会用到比如说titlebar,或者footerbar

这种情况下,架构的时候就可以定义一个BaseActivity了

思路是:
通过BaseActivity继承Activity,在layout中为后面要添加的layout预留一个空的layout,具体代码:

public class BaseActivity extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		requestWindowFeature(Window.FEATURE_NO_TITLE);
		setContentView(R.layout.base);
	}

	public void baseSetContentView(int layoutResId) {
		LinearLayout llContent = (LinearLayout) findViewById(R.id.content);
		LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
		View v = inflater.inflate(layoutResId, null);
		llContent.addView(v);
	}

}


base布局文件:

<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="50dip"
        android:background="@drawable/titlebar"
        android:layout_alignParentTop="true"
        android:orientation="horizontal" >

        <Button
            android:id="@+id/titlbarback"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/back"
            android:textSize="14dip" />

        <TextView
            android:id="@+id/title"
            style="@style/titlebarstyle"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/app_name" />

        <Button
            android:id="@+id/confirm"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/confirm"
            android:textSize="14dip" />

        <Button
            android:id="@+id/cancel"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/cancel"
            android:textSize="14dip" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="match_parent"
        android:id="@+id/content">
    </LinearLayout>

</RelativeLayout>

这样,当BaseActivity的子activity只要调用baseSetContentView这个方法把自己的layout设置一下就可以了。

[/size]
分享到:
评论

相关推荐

    Android项目基类BaseActivity

    在Android应用开发中,`BaseActivity`是一种常见的做法,它是一个基础活动类,通常用于封装共性的功能,以便在其他具体活动(子类)中复用。通过创建`BaseActivity`,开发者可以避免代码重复,提高代码的可维护性和...

    Android中BaseActivity自定义标题栏

    本文将详细介绍如何在Android中基于BaseActivity自定义标题栏,以满足特定的设计需求,如标题居中、自定义按钮样式等。 首先,创建一个名为BaseActivity的基类,该类继承自AppCompatActivity。AppCompatActivity是...

    android加载BaseActivity的布局

    在Android Studio中,可以在`java`目录下新建一个名为`BaseActivity`的类,继承自`AppCompatActivity`或`FragmentActivity`,具体取决于你的项目需求。`AppCompatActivity`提供了对Android Material Design的支持,...

    Android普通项目通用BaseActivity

    小型项目通用的BaseActivity,包含沉浸式,全屏,搭配使用QMUI框架,效果杠杠的。

    android简单封装好的baseactivity

    用注解findviewbyid封装好的BaseActivity,让其他类去继承。

    BaseActivity

    2. **添加公共方法**:在BaseActivity中定义一些公共方法,比如onCreateOptionsMenu()用于处理菜单项的初始化,onOptionsItemSelected()处理菜单项的选择,或者onActivityResult()处理从其他Activity返回的结果。...

    自定义BaseActivity

    在Android应用开发中,`BaseActivity`是一种常见的设计模式,用于实现通用功能的基类,以便其他活动(Activities)可以继承它,从而避免在每个活动中重复编写相同的代码。这种做法有助于提升代码的复用性和可维护性...

    Flutter之BaseWidget高度封装,如BaseActivity/BaseViewController般丝滑

    入坑以来,发现Flutter 的页面不像安卓那样明确,安卓中就是Activity,IOS中就是UIViewController,H5中就是一个route,我们项目开发基本都会有一个BaseActivity/BaseViewController,今天就为各位带来和其功能以及...

    Android-一个共享的开发框架包含各种实用的BaseActivity

    在Android应用开发中,开发者经常会面临重复编写相似代码的问题,比如初始化控件、处理网络请求、数据解析等。为了提高代码复用性、减少冗余和提升开发效率,开发框架应运而生。"Android-一个共享的开发框架包含各种...

    继承 BaseActivity 框架

    Activiy继承的BaseActivity,封装了取消标题等,方便实用

    Android App框架设计 基类BaseActivity

    一个BaseActivity基类 封装了不同网络访问状态下界面切换 toolbar标准 以及DataBinding实现无需findViewbyid 和Butterknife超长注解成员变量 Activity管理类

    BaseActivity自定义TitleBar

    在Android应用开发中,`BaseActivity`是一种常见的设计模式,用于封装共有的功能,以便在多个活动(Activity)中重用。本主题将深入探讨如何为`BaseActivity`自定义TitleBar,提升应用的用户体验和界面一致性。 ...

    mvp封装+baseactivity封装.

    在Android应用开发中,Model-View-Presenter(MVP)模式是一种常见的设计模式,它将业务逻辑、数据处理和用户界面进行了分离,提高了代码的可读性和可维护性。MVP封装则是对这一模式的进一步优化,使得开发者可以更...

    使用BaseActivity_Demo

    对应文章“Android开发优化-使用BaseActivity”的Demo源码,文章链接:http://blog.csdn.net/tianmaxingkong_/article/details/50276171

    BaseActivity的使用

    在Android开发中,`BaseActivity`是一个常见的设计模式,它被用作所有其他活动(Activity)的基类,目的是为了代码复用和模块化。通过继承`BaseActivity`,开发者可以将通用的功能集中到一个地方,减少每个具体...

    Android-BaseFramework是对BaseActivity与BaseFragment的整合库

    在Android应用开发中,基础框架的设计对于项目的可维护性和代码复用性至关重要。"Android-BaseFramework"就是这样一个专门针对BaseActivity和BaseFragment进行整合的库,旨在简化开发者的工作流程,提高开发效率。这...

    BaseActivity+动态权限

    在Android开发中,随着Android 6.0(API级别23)的发布,系统引入了权限模型的重大变化,即运行时权限。在此之前,应用程序在安装时获取所有所需权限,但在Android 6.0及更高版本中,用户可以在应用运行时授予或撤销...

    组件化bufferkinfe的使用

    在Android开发中,组件化是一种将大型应用拆分为多个可重用模块的策略,以便于维护和扩展。BufferKnife是一款非常流行的注解绑定库,它简化了视图注入的过程,使得开发者无需手动查找和设置控件。然而,在组件化开发...

    Android 全局悬浮View实现,以及悬浮view点击事件

    在这个例子中,`android:layout_gravity`属性用于设置悬浮按钮在屏幕上的位置,`app:srcCompat`则定义了按钮上的图标。 接下来,我们需要在BaseActivity中处理悬浮按钮的显示与隐藏。通常,我们会在BaseActivity的`...

Global site tag (gtag.js) - Google Analytics