歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Android中定義BaseActivity

Android中定義BaseActivity

日期:2017/3/1 10:19:52   编辑:Linux編程

需求:

如果一個應用程序中有許多activity都會用到比如說titlebar,或者footerbar

這種情況下,架構的時候就可以定義一個BaseActivity了

思路是:

通過BaseActivity繼承Activity,在layout中為後面要添加的layout預留一個空的layout,具體代碼:

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

base布局文件:

  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. <LinearLayout
  7. android:layout_width="fill_parent"
  8. android:layout_height="50dip"
  9. android:background="@drawable/titlebar"
  10. android:layout_alignParentTop="true"
  11. android:orientation="horizontal" >
  12. <Button
  13. android:id="@+id/titlbarback"
  14. android:layout_width="wrap_content"
  15. android:layout_height="wrap_content"
  16. android:text="@string/back"
  17. android:textSize="14dip" />
  18. <TextView
  19. android:id="@+id/title"
  20. style="@style/titlebarstyle"
  21. android:layout_width="wrap_content"
  22. android:layout_height="wrap_content"
  23. android:text="@string/app_name" />
  24. <Button
  25. android:id="@+id/confirm"
  26. android:layout_width="wrap_content"
  27. android:layout_height="wrap_content"
  28. android:text="@string/confirm"
  29. android:textSize="14dip" />
  30. <Button
  31. android:id="@+id/cancel"
  32. android:layout_width="wrap_content"
  33. android:layout_height="wrap_content"
  34. android:text="@string/cancel"
  35. android:textSize="14dip" />
  36. </LinearLayout>
  37. <LinearLayout
  38. android:layout_width="fill_parent"
  39. android:layout_height="match_parent"
  40. android:id="@+id/content">
  41. </LinearLayout>
  42. </RelativeLayout>

這樣,當BaseActivity的子activity只要調用baseSetContentView這個方法把自己的layout設置一下就可以了。

更多Android相關信息見Android 專題頁面 http://www.linuxidc.com/topicnews.aspx?tid=11

Copyright © Linux教程網 All Rights Reserved