Android 同样的标题
由于项目需求 要求某几个Activity统一标题栏
新建 main_head.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:id="@+id/main_linearlayout_head"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
>
<Button
android:id="@+id/btn_left"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="上一步"
android:textSize="18sp" />
<TextView
android:id="@+id/tv_title"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:text="标题"
android:textSize="18sp" />
<Button
android:id="@+id/btn_right"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="下一步"
android:textSize="18sp" />
</LinearLayout>
接下来建立base_main.xml 用来载入上面建立的 main_head.xml 如项目有多个不同 title bar 只需更换 include
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#FFFFFF"
android:orientation="vertical" >
<include
android:id="@+id/bottom"
layout="@layout/main_header" />
<LinearLayout
android:id="@+id/content"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_below="@+id/bottom"
android:orientation="horizontal" >
</LinearLayout>
</RelativeLayout>
目前 视图需要建立的activity已经完成 我们建立一个BaseActivity 来管理
package com.minitalk.adapter;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.Window;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.LinearLayout.LayoutParams;
import android.widget.TextView;
import com.minitalk.avtivity.R;
import framework.utils.AppManager;
/**
* 继承于Activity用于以后方便管理
*
* @author coder
*/
public abstract class BaseActivity extends Activity {
// 固定的菜单栏button
private Button BackButton;
private TextView Title;
private Button NextButton;
//所填从内容的布局
private LinearLayout ly_content;
// 内容区域的布局
private View contentView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.base_main);
ly_content = (LinearLayout) findViewById(R.id.content);
BackButton = (Button) findViewById(R.id.btn_left);
Title = (TextView) findViewById(R.id.tv_title);
NextButton = (Button) findViewById(R.id.btn_right);
}
/**
* 得到View的 内容
*
* @return
*/
public View getLyContentView() {
return contentView;
}
/**
* 设置内容区域
*
* @param view View对象
*/
public void setContentLayout(View view) {
if (null != ly_content) {
ly_content.addView(view);
}
}
/**
* 设置内容区域
*
* @param resId 资源文件ID
*/
public View setContentLayout(int resId) {
LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
contentView = inflater.inflate(resId, null);
LayoutParams layoutParams = new LayoutParams(LayoutParams.FILL_PARENT,
LayoutParams.MATCH_PARENT);
contentView.setLayoutParams(layoutParams);
if (null != ly_content) {
ly_content.addView(contentView);
// 添加Activity到堆栈
AppManager.getAppManager().addActivity(this);
Log.v("AppManager",
"AppManager 添加actiivty!!" + this.getLocalClassName());
}
return contentView;
}
/**
* 用来管理点击事件
* */
protected abstract void leftbnt();
protected abstract void rightbnt();
public void leftbnt(View view) {
leftbnt();
}
public void rightbnt(View view) {
rightbnt();
}
/**
* 设置右上角的button消失
*/
public void setnextgone() {
NextButton.setVisibility(View.INVISIBLE);
}
/**
* 设置标题
*/
public void settitle(String title) {
Title.setText(title);
}
}
用于管理 activityStacks
package com.example.zh_title;
import java.util.Stack;
import android.app.Activity;
import android.app.ActivityManager;
import android.content.Context;
public class AppManager {
public static Activity context = null;
private static Stack<Activity> activityStack;
private static AppManager instance;
private AppManager() {
}
/**
* 单一实例
*/
public static AppManager getAppManager() {
if (instance == null) {
instance = new AppManager();
}
return instance;
}
/**
* 添加Activity到堆栈
*/
public void addActivity(Activity activity) {
if (activityStack == null) {
activityStack = new Stack<Activity>();
}
activityStack.add(activity);
}
/**
* 获取当前Activity(堆栈中最后一个压入的)
*/
public Activity currentActivity() {
Activity activity = activityStack.lastElement();
return activity;
}
/**
* 结束当前Activity(堆栈中最后一个压入的)
*/
public void finishActivity() {
Activity activity = activityStack.lastElement();
finishActivity(activity);
}
/**
* 结束指定的Activity
*/
public void finishActivity(Activity activity) {
if (activity != null) {
activityStack.remove(activity);
activity.finish();
activity = null;
}
}
/**
* 结束指定类名的Activity
*/
public void finishActivity(Class<?> cls) {
for (Activity activity : activityStack) {
if (activity.getClass().equals(cls)) {
finishActivity(activity);
}
}
}
/**
* 结束所有Activity
*/
public void finishAllActivity() {
for (int i = 0, size = activityStack.size(); i < size; i++) {
if (null != activityStack.get(i)) {
activityStack.get(i).finish();
}
}
activityStack.clear();
}
/**
* 退出应用程序
*/
public void AppExit(Context context) {
try {
finishAllActivity();
ActivityManager activityMgr = (ActivityManager) context
.getSystemService(Context.ACTIVITY_SERVICE);
activityMgr.restartPackage(context.getPackageName());
System.exit(0);
} catch (Exception e) {
}
}
}