android中定义BaseActivity

需求: 
如果一个应用程序中有许多activity都会用到比如说titlebar,或者footerbar 

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

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

Java代码   收藏代码
  1. public class BaseActivity extends Activity {  
  2.   
  3.     @Override  
  4.     protected void onCreate(Bundle savedInstanceState) {  
  5.         super.onCreate(savedInstanceState);  
  6.         requestWindowFeature(Window.FEATURE_NO_TITLE);  
  7.         setContentView(R.layout.base);  
  8.     }  
  9.   
  10.     public void baseSetContentView(int layoutResId) {  
  11.         LinearLayout llContent = (LinearLayout) findViewById(R.id.content);  
  12.         LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);  
  13.         View v = inflater.inflate(layoutResId, null);  
  14.         llContent.addView(v);  
  15.     }  
  16.   
  17. }  


base布局文件: 

Xml代码   收藏代码
  1. xml version="1.0" encoding="utf-8"?>  
  2. xml version="1.0" encoding="utf-8"?>  
  3. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  4.     android:layout_width="fill_parent"  
  5.     android:layout_height="fill_parent" >  
  6.   
  7.     <LinearLayout  
  8.         android:layout_width="fill_parent"  
  9.         android:layout_height="50dip"  
  10.         android:background="@drawable/titlebar"  
  11.         android:layout_alignParentTop="true"  
  12.         android:orientation="horizontal" >  
  13.   
  14.         <Button  
  15.             android:id="@+id/titlbarback"  
  16.             android:layout_width="wrap_content"  
  17.             android:layout_height="wrap_content"  
  18.             android:text="@string/back"  
  19.             android:textSize="14dip" />  
  20.   
  21.         <TextView  
  22.             android:id="@+id/title"  
  23.             style="@style/titlebarstyle"  
  24.             android:layout_width="wrap_content"  
  25.             android:layout_height="wrap_content"  
  26.             android:text="@string/app_name" />  
  27.   
  28.         <Button  
  29.             android:id="@+id/confirm"  
  30.             android:layout_width="wrap_content"  
  31.             android:layout_height="wrap_content"  
  32.             android:text="@string/confirm"  
  33.             android:textSize="14dip" />  
  34.   
  35.         <Button  
  36.             android:id="@+id/cancel"  
  37.             android:layout_width="wrap_content"  
  38.             android:layout_height="wrap_content"  
  39.             android:text="@string/cancel"  
  40.             android:textSize="14dip" />  
  41.     LinearLayout>  
  42.   
  43.     <LinearLayout  
  44.         android:layout_width="fill_parent"  
  45.         android:layout_height="match_parent"  
  46.         android:id="@+id/content">  
  47.     LinearLayout>  
  48.   
  49. RelativeLayout>  

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

你可能感兴趣的:(android学习资料)